Compare commits

...

16 Commits

Author SHA1 Message Date
Thomas Kintscher
a132488945 fix(nubus): disable traefik file watcher, saving fsnotify handles 2024-08-26 19:12:28 +02:00
Johannes Bornhold
d7b54da5dd fix(nubus): Disable certManager 2024-08-26 10:05:39 +02:00
Johannes Bornhold
578dc7b5a7 fix(nubus): Increase UMC Server limit 2024-08-26 10:05:39 +02:00
Johannes Bornhold
59cdf189eb feat(nubus): Update to Nubus 0.39.1 chart and images only 2024-08-26 10:05:39 +02:00
Jaime Conde
4c45a538f0 fix(nubus): Drop umc-gateway menu unused patches 2024-08-23 15:53:13 +02:00
Johannes Bornhold
4633e0b03c fix(nubus): Support "ingress.tls.secretName" 2024-08-23 15:53:06 +02:00
Johannes Bornhold
bb0b1daace fix(nubus): Use cert-manager issuer name out of Helmfile values 2024-08-23 15:53:05 +02:00
Thorsten Roßner
370c7cd836 fix(collabora): Set Nextcloud URL for custom font support. 2024-08-23 09:53:56 +02:00
Thorsten Roßner
ac148d0c28 fix(nextcloud): Update to 29.0.5 and support for new functional settings regarding sharing of files. See the options related to functional.filestore.sharing in functional.yaml and also migrations.md regarding their defaults that differ from the previous standard behaviour of openDesk. 2024-08-22 13:04:20 +00:00
openDesk Bot
3d441933ca fix(collabora): Update to 24.04.6.2.1. 2024-08-22 09:08:02 +02:00
Thorsten Roßner
b60fe39b5c fix(helmfile): Remove toggle functional.email.systemGenerated.useComponentInSenderdomain. Mails will no longer use a component subdomain in their sender address. 2024-08-20 17:25:07 +02:00
Thorsten Roßner
c03566dd63 fix(services): Support application based connection limits and password updates for PostgreSQL and MariaDB. 2024-08-20 15:12:35 +00:00
openDesk Bot
fbe4909a8e feat(services): [bmi/opendesk/deployment/opendesk#66] Add dkimpy-milter to sign outgoing emails with DKIM and use local postfix as mail relay in all components. 2024-08-20 16:13:03 +02:00
Oliver Günther
e1d15e4bc6 chore(openproject): Bump version to 14.4 2024-08-16 09:04:32 +02:00
Thorsten Roßner
c63e725525 fix(nubus): Update LDAP to openLDAP 2.5. 2024-08-14 19:05:53 +02:00
Thorsten Roßner
45715a2059 fix(docs): Update replicas.yaml and docs/scaling.md. 2024-08-14 13:15:05 +02:00
35 changed files with 888 additions and 278 deletions

View File

@@ -29,16 +29,16 @@ openDesk is a Kubernetes based, open-source and cloud-native digital workplace s
openDesk currently features the following functional main components:
| Function | Functional Component | Component<br/>Version | Upstream Documentation |
| -------------------- | --------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| -------------------- | --------------------------- |---------------------------------------------------------------------------------------| -------------------------------------------------------------------------------------------------------------------------------------------- |
| Chat & collaboration | Element ft. Nordeck widgets | [1.11.67](https://github.com/element-hq/element-desktop/releases/tag/v1.11.67) | [For the most recent release](https://element.io/user-guide) |
| Diagram editor | CryptPad ft. diagrams.net | [5.6.0](https://github.com/cryptpad/cryptpad/releases/tag/5.6.0) | [For the most recent release](https://docs.cryptpad.org/en/) |
| File management | Nextcloud | [28.0.5](https://nextcloud.com/de/changelog/#28-0-5) | [Nextcloud 28](https://docs.nextcloud.com/) |
| Groupware | OX App Suite | [8.26](https://documentation.open-xchange.com/appsuite/releases/8.26/) | Online documentation available from within the installed application; [Additional resources](https://www.open-xchange.com/resources/oxpedia) |
| Knowledge management | XWiki | [16.4.1](https://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/16.4.1/) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) |
| Portal & IAM | Nubus | Product Preview[^1] | [Univention's documentation website](https://docs.software-univention.de/n/en/index.html) |
| Project management | OpenProject | [14.3.0](https://www.openproject.org/docs/release-notes/14-3-0/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
| Project management | OpenProject | [14.4.0](https://www.openproject.org/docs/release-notes/14-4-0/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
| Videoconferencing | Jitsi | [2.0.9646](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9646) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) |
| Weboffice | Collabora | [24.04.6.1.1](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.6.2.1](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 shaped for the execution inside containers, one of the project's objectives is to
align the applications with best practices regarding container design and operations.

View File

@@ -73,7 +73,8 @@
"Addressbooks",
"filestore",
"trashbin",
"bootstrap"
"bootstrap",
"configurability"
],
"ignoreWords": [],
"import": []

View File

@@ -33,6 +33,7 @@ they need to be replaced in production deployments.
| ClamAV (Simple) | Antivirus engine | Eval |
| Collabora | Weboffice | Functional |
| CryptPad | Weboffice | Functional |
| dkimpy-milter | DKIM milter for Postfix | Eval |
| Element | Secure communications platform | Functional |
| Intercom Service | Cross service data exchange | Functional |
| Jitsi | Videoconferencing | Functional |

View File

@@ -52,7 +52,7 @@ Below you will find some wrap-up notes when it comes to debugging openDesk by ad
You can add a container by editing and updating an existing deployment, which is quite comfortable with tools like [Lens](https://k8slens.dev/).
- Select the container you want to make use of as debugging container, in the example below it's `registry.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-debugging-image:latest`.
- Select the container you want to make use of as debugging container, in the example below it is `registry.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-debugging-image:latest`.
- Ensure the `shareProcessNamespace` option is enabled for the Pod.
- Reference the selected container within the `containers` array of the deployment.
- In case you want to access another containers filesystem, ensure the user/group settings of both containers match.
@@ -121,7 +121,7 @@ Now you can add the ephemeral container with:
```
kubectl -n ${NAMESPACE} debug -it --attach=false -c ${EPH_CONTAINER_NAME} --image={DEBUG_IMAGE} ${POD_NAME}
```
and open it's interactive terminal with
and open its interactive terminal with
```
kubectl -n ${NAMESPACE} attach -it -c ${EPH_CONTAINER_NAME} ${POD_NAME}
```

View File

@@ -77,7 +77,7 @@ The following changes apply to the standard DNS:
#### Content Security Policy
The webserver of `my_organization.tld` should add `*.opendesk.domain.tld` to it's CSP header.
The webserver of `my_organization.tld` should add `*.opendesk.domain.tld` to its CSP header.
#### .well-known

View File

@@ -60,16 +60,16 @@ The deployment is designed to deploy each application/service under a dedicated
For your convenience, we recommend to create a `*.domain.tld` A-Record to your cluster ingress controller,
otherwise you need to create an A-Record for each subdomain.
| Record name | Type | Value | Additional information |
| ----------------------- | ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
| *.domain.tld | A | IPv4 address of your Ingress Controller | |
| *.domain.tld | AAAA | IPv6 address of your Ingress Controller | |
| mail.domain.tld | A | IPv4 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
| mail.domain.tld | AAAA | IPv6 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
| domain.tld | MX | `10 mail.domain.tld` | |
| domain.tld | TXT | `v=spf1 +a +mx +a:mail.domain.tld ~all` | Optional, use proper MTA record if present |
| _dmarc.domain.tld | TXT | `v=DMARC1; p=quarantine` | Optional |
| _matrix._tcp.domain.tld | SRV | `1 10 PORT matrix.domain.tld` | `PORT` is your NodePort/LoadBalancer port of `opendesk-synapse-federation` service |
| Record name | Type | Value | Additional information |
|-------------------------------|------|----------------------------------------------------|------------------------------------------------------------------|
| *.domain.tld | A | IPv4 address of your Ingress Controller | |
| *.domain.tld | AAAA | IPv6 address of your Ingress Controller | |
| mail.domain.tld | A | IPv4 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
| mail.domain.tld | AAAA | IPv6 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
| domain.tld | MX | `10 mail.domain.tld` | |
| domain.tld | TXT | `v=spf1 +a +mx +a:mail.domain.tld ~all` | Optional, use proper MTA record if present |
| _dmarc.domain.tld | TXT | `v=DMARC1; p=quarantine` | Optional |
| default._domainkey.domain.tld | TXT | `v=DKIM1; k=rsa; h=sha256; ...` | Optional DKIM settings |
## Domain
@@ -263,6 +263,8 @@ To use the openDesk functionality with its web based user interface you need to
| Component | Description | Port | Type |
| ------------------ | ----------------------- | ----: | ---: |
| openDesk | Kubernetes Ingress | 80 | TCP |
| openDesk | Kubernetes Ingress | 443 | TCP |
| Jitsi Video Bridge | ICE Port for video data | 10000 | UDP |
#### Mail clients
@@ -288,6 +290,20 @@ smtp:
password: "secret"
```
Enabling DKIM signing of emails helps to reduce spam and increases trust.
openDesk ships dkimpy-milter as Postfix milter for signing mails.
```yaml
dkimpy:
enable: true
dkim:
key:
value: |
HzZs08QF1O7UiAkcM9T3U7rePPECtSFvWZIvyKqdg8E=
selector: "default"
useED25519: true # when false, RSA is used
```
### TURN configuration
Some components (Jitsi, Element) use for direct communication a TURN server. You can configure your own TURN server with

View File

@@ -8,7 +8,10 @@ SPDX-License-Identifier: Apache-2.0
* [Disclaimer](#disclaimer)
* [Releases upgrades](#releases-upgrades)
* [From v0.9.0](#from-v090)
* [Manual interaction](#manual-interaction)
* [Fileshare configurability](#fileshare-configurability)
* [Automated migrations](#automated-migrations)
* [Local Postfix as Relay](#local-postfix-as-relay)
* [Updated IAM component Nubus](#updated-iam-component-nubus)
* [Manual cleanup](#manual-cleanup)
* [From v0.8.1](#from-v081)
@@ -31,18 +34,47 @@ Limitations:
## From v0.9.0
### Manual interaction
#### Fileshare configurability
We provide now some configurability regarding the sharing capabilities of the Nextcloud component.
The new default is different from the standard until now. To keep the current state after the upgrade from 0.9.0 you have to provide the following settings:
```
functional:
filestore:
sharing:
# Enables sharing of files with external participants (create external links, send links by mail and allow external upload in shared folders).
enableExternalSharing: true
# Enforces passwords to be used on external shares.
enforceSharingPasswords: false
```
### Automated migrations
#### Local Postfix as Relay
All components relay outgoing mails to the local Postfix. In order for the configuration to be picked up by all components the following restarts are triggered in the migrations `POST` stage:
- Deployments:
- `opendesk-nextcloud-php`
- `ums-umc-server`
- Stateful Sets:
- `ums-selfservice-listener`
- `opendesk-synapse`
#### Updated IAM component Nubus
openDesk is integrating the latest [Nubus](https://www.univention.de/produkte/nubus/) development from Univention. The now redundant and scalable LDAP requires migration activities. These have been automated to avoid manual interaction. The `run_2` of the openDesk
upgrade migrations executes the following steps:
- Stage PRE:
- Stage `PRE`:
- Delete service `ums-keycloak`, as it will be recreated headless.
- Scale down `statefulset/ums-ldap-server` and `statefulset/ums-ldap-notifier` in preparation or the next step:
- Create two new PVCs `shared-data-ums-ldap-server-primary-0` and `shared-data-ums-ldap-server-primary-1` for the new LDAP primary pods as copy from the existing `shared-data-ums-ldap-server-0`. The LDAP secondaries will sync from the primary nodes.
- Stage POST:
- Stage `POST`:
- Restart Keycloak.
##### Manual cleanup

View File

@@ -39,6 +39,8 @@ The following minimal requirements are thought for initial evaluation deployment
| RAM | 32 GB, more recommended |
| Disk | HDD or SSD, >10 GB |
Check [`scaling.md`](./scaling.md) for more details on resource requirements and scalability.
# Kubernetes
Any self-hosted or managed K8s cluster >= 1.24 listed in

View File

@@ -7,55 +7,17 @@ SPDX-License-Identifier: Apache-2.0
This document should cover the abilities to scale apps.
<!-- TOC -->
* [Replicas](#replicas)
<!-- TOC -->
# Horizontal scalability
# Replicas
We are working on generating this document automatically based on the file
[`replicas.yaml`](../helmfile/environments/default/replicas.yaml) that contains necessary annotations.
In the meantime this file can be used to check the components scaling support / capabilities.
The Replicas can be increased of almost any component, but is only effective for high-availability or load-balancing for
apps with a check-mark in `Scaling (effective)` column.
# Upstream information
Verified positive effects are marked with a check-mark in `Scaling (verified)` column, apps which are not yet tested are
marked with a gear.
While scaling services horizontally is the ideal solution, information about vertical scaling is helpful
when it comes to defining the applications resources, see [`resources.yaml`](../helmfile/environments/default/resources.yaml) for references.
Please find below links to the application's upstream resources about scaling:
| Component | Name | Scaling (effective) | Scaling (verified) |
|-----------------------------|------------------------------------------|:-------------------:|:------------------:|
| ClamAV | `replicas.clamav` | :white_check_mark: | :white_check_mark: |
| | `replicas.clamd` | :white_check_mark: | :white_check_mark: |
| | `replicas.freshclam` | :x: | :x: |
| | `replicas.icap` | :white_check_mark: | :white_check_mark: |
| | `replicas.milter` | :white_check_mark: | :white_check_mark: |
| Collabora | `replicas.collabora` | :white_check_mark: | :gear: |
| CryptPad | `replicas.cryptpad` | :white_check_mark: | :gear: |
| Dovecot | `replicas.dovecot` | :x: | :gear: |
| Element | `replicas.element` | :white_check_mark: | :white_check_mark: |
| | `replicas.matrixNeoBoardWidget` | :white_check_mark: | :gear: |
| | `replicas.matrixNeoChoiceWidget` | :white_check_mark: | :gear: |
| | `replicas.matrixNeoDateFixBot` | :white_check_mark: | :gear: |
| | `replicas.matrixNeoDateFixWidget` | :white_check_mark: | :gear: |
| | `replicas.matrixUserVerificationService` | :white_check_mark: | :gear: |
| | `replicas.synapse` | :x: | :gear: |
| | `replicas.synapseWeb` | :white_check_mark: | :white_check_mark: |
| | `replicas.wellKnown` | :white_check_mark: | :white_check_mark: |
| Intercom Service | `replicas.intercomService` | :white_check_mark: | :white_check_mark: |
| Jitsi | `replicas.jibri` | :white_check_mark: | :gear: |
| | `replicas.jicofo` | :white_check_mark: | :gear: |
| | `replicas.jitsi ` | :white_check_mark: | :gear: |
| | `replicas.jitsiKeycloakAdapter` | :white_check_mark: | :gear: |
| | `replicas.jvb ` | :x: | :x: |
| Keycloak | `replicas.keycloak` | :white_check_mark: | :white_check_mark: |
| Memcached | `replicas.memcached` | :gear: | :gear: |
| Minio | `replicas.minioDistributed` | :white_check_mark: | :white_check_mark: |
| Nextcloud | `replicas.nextcloudApache2` | :white_check_mark: | :white_check_mark: |
| | `replicas.nextcloudExporter` | :white_check_mark: | :white_check_mark: |
| | `replicas.nextcloudPHP` | :white_check_mark: | :white_check_mark: |
| OpenProject | `replicas.openproject` | :white_check_mark: | :white_check_mark: |
| Postfix | `replicas.postfix` | :x: | :gear: |
| Redis | `replicas.redis` | :gear: | :gear: |
| Univention Management Stack | | :gear: | :gear: |
| | `replicas.umsPortalFrontend` | :white_check_mark: | :white_check_mark: |
| | `replicas.umsPortalServer` | :white_check_mark: | :white_check_mark: |
| | `replicas.umsUdmRestApi` | :white_check_mark: | :white_check_mark: |
| XWiki | `replicas.xwiki` | :x: | :gear: |
- [OpenProject system requirements](https://www.openproject.org/docs/installation-and-operations/system-requirements/)

View File

@@ -7,7 +7,7 @@ autoscaling:
enabled: false
collabora:
extra_params: "--o:ssl.enable=false --o:ssl.termination=true --o:fetch_update_check=0"
extra_params: "--o:ssl.enable=false --o:ssl.termination=true --o:fetch_update_check=0 --o:remote_font_config.url=https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/index.php/apps/richdocuments/settings/fonts.json"
username: "collabora-internal-admin"
password: {{ .Values.secrets.collabora.adminPassword | quote }}
aliasgroups:

View File

@@ -50,15 +50,17 @@ configuration:
url: null
sender_localpart: ox-appsuite
presence:
presence:
enabled: {{ .Values.functional.dataProtection.matrixPresence.enabled }}
smtp:
senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.element }}.{{ end }}{{ .Values.global.domain }}"
host: {{ .Values.smtp.host | quote }}
port: {{ .Values.smtp.port }}
username: {{ .Values.smtp.username | quote }}
password: {{ .Values.smtp.password | quote }}
senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
port: 25
tls: false
starttls: false
username: ""
password: ""
oidc:
clientId: "opendesk-matrix"

View File

@@ -73,16 +73,25 @@ configuration:
value: "opendesk_username"
password:
value: {{ .Values.secrets.centralnavigation.apiKey | quote }}
sharing:
allowLinks: {{ .Values.functional.filestore.sharing.enableExternalSharing }}
allowMailNotification: {{ .Values.functional.filestore.sharing.enableExternalSharing }}
allowPublicUpload: {{ .Values.functional.filestore.sharing.enableExternalSharing }}
enforceLinksPassword: {{ .Values.functional.filestore.sharing.enforceSharingPasswords }}
enforcePasswordProtection: {{ .Values.functional.filestore.sharing.enforceSharingPasswords }}
smtp:
auth:
enabled: false
username:
value: {{ .Values.smtp.username | quote }}
value: ""
password:
value: {{ .Values.smtp.password | quote }}
host: {{ .Values.smtp.host | quote }}
port: {{ .Values.smtp.port | quote }}
value: ""
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
port: 25
fromAddress: {{ .Values.smtp.localpartNoReply | quote }}
mailDomain: "{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.nextcloud }}.{{ end }}{{ .Values.global.domain }}"
mailDomain: "{{ .Values.global.domain }}"
security: ""
skipVerifyPeer: true
quota:
default: "{{ .Values.functional.filestore.quota.default }} GB"
retentionObligation:

View File

@@ -8,7 +8,7 @@ global:
domainName: {{ .Values.global.domain | quote }}
domain: {{ .Values.global.domain | quote }}
ingressClass: {{ .Values.ingress.ingressClassName | default "nginx" | quote }}
certManagerIssuer: "letsencrypt-prod-dns"
certManagerIssuer: {{ .Values.certificate.issuerRef.name | quote }}
nubusMasterPassword: {{ env "MASTER_PASSWORD" | default "sovereign-workplace" | quote }}
keycloak:
realm: {{ .Values.platform.realm | quote }}
@@ -35,10 +35,10 @@ global:
imagePullPolicy: "IfNotPresent"
- name: "opendesk"
image:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nubus"
registry: {{ .Values.images.nubusOpendeskExtension.registry }}
repository: {{ .Values.images.nubusOpendeskExtension.repository }}
tag: {{ .Values.images.nubusOpendeskExtension.tag }}
imagePullPolicy: "IfNotPresent"
tag: "1.1.0"
# -- Allows to configure the system extensions to load. This is intended for
# internal usage, prefer to use `global.extensions` for user configured
@@ -51,6 +51,12 @@ global:
tag: {{ .Values.images.nubusPortalExtension.tag }}
imagePullPolicy: "IfNotPresent"
ingress:
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
# Nubus bundled services
postgresql:
enabled: false
@@ -83,7 +89,7 @@ keycloak:
nubusGuardian:
provisioning:
enabled: true
enabled: false
config:
keycloak:
credentialSecret:
@@ -93,7 +99,11 @@ nubusGuardian:
credentialSecret:
name: "ums-opendesk-guardian-client-secret"
key: "managementApiClientSecret"
ingress:
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
postgresql:
connection:
host: {{ .Values.databases.umsGuardianManagementApi.host | quote }}
@@ -114,6 +124,11 @@ nubusNotificationsApi:
username: {{ .Values.databases.umsNotificationsApi.username | quote }}
database: {{ .Values.databases.umsNotificationsApi.name | quote }}
existingSecret: "ums-notifications-api-postgresql-opendesk-credentials"
ingress:
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusKeycloakExtensions:
@@ -138,6 +153,10 @@ nubusKeycloakExtensions:
path: "/resources/"
- pathType: "Prefix"
path: "/fingerprintjs"
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
postgresql:
@@ -152,10 +171,13 @@ nubusKeycloakExtensions:
key: "umcKeycloakExtensionsDatabasePassword"
smtp:
connection:
host: {{ .Values.smtp.host | quote }}
port: {{ .Values.smtp.port | quote }}
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
port: 25
ssl: false
starttls: false
auth:
username: {{ .Values.smtp.username | quote }}
enabled: false
username: ""
credentialSecret:
name: "ums-keycloak-extensions-smtp-opendesk-credentials"
key: "umcKeycloakExtensionsSmtpPassword"
@@ -163,7 +185,14 @@ nubusKeycloakExtensions:
appConfig:
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
newDeviceLoginSubject: "New device login on your {{ .Values.theme.texts.productName }} account"
mailFrom: "{{ .Values.smtp.localpartNoReply }}@{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.keycloak }}.{{ end }}{{ .Values.global.domain }}"
mailFrom: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
nubusPortalFrontend:
ingress:
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusPortalListener:
portalListener:
@@ -185,6 +214,18 @@ nubusPortalServer:
centralNavigation:
enabled: true
authenticatorSecretName: "ums-opendesk-portal-server-central-navigation"
ingress:
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusUdmRestApi:
ingress:
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
# NOTE: disabled until the next update.
nubusProvisioning:
@@ -213,6 +254,12 @@ nubusStackDataUms:
# TODO: Remove values when upstreaming fixes
nubusStackDataSwp:
stackDataSwp:
{{- if .Values.functional.admin.portal.deploymentInformation.enabled }}
systemInformation:
deployDate: "Deployed: {{ now | date "2006-01-02T15:04:05-0700" }}"
releaseVersion: "Release: {{ .Values.global.systemInformation.releaseVersion }}"
{{- end }}
stackDataContext:
ldapSearchUsers:
{{- range $username, $password := .Values.secrets.nubus.ldapSearch }}
@@ -221,9 +268,10 @@ nubusStackDataSwp:
lastname: "LDAP-Search-User"
{{- end }}
externalMailDomain: {{ .Values.global.mailDomain | default .Values.global.domain }}
smtpHost: {{ .Values.smtp.host | quote }}
smtpPort: {{ .Values.smtp.port | quote }}
smtpUser: {{ .Values.smtp.username | quote }}
smtpHost: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
smtpPort: 25
smtpUser: ""
smtpStartTls: false
ldapBase: {{ .Values.ldap.baseDn }}
# FIXME: Should be templated correctly in the future
portalRealtimeCollaborationLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.element .Values.global.domain }}
@@ -258,10 +306,20 @@ nubusUmcServer:
smtp:
credentialSecret:
name: "ums-umc-server-smtp-credentials-custom"
ingress:
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusUmcGateway:
umcGateway:
umcHtmlTitle: "openDesk Portal"
ingress:
certManager:
enabled: false
tls:
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusKeycloakBootstrap:
keycloak:
@@ -309,7 +367,7 @@ extraSecrets:
umcKeycloakExtensionsDatabasePassword: {{ .Values.databases.keycloakExtension.password | default .Values.secrets.postgresql.keycloakExtensionUser | quote }}
- name: "ums-keycloak-extensions-smtp-opendesk-credentials"
stringData:
umcKeycloakExtensionsSmtpPassword: {{ .Values.smtp.password | quote }}
umcKeycloakExtensionsSmtpPassword: ""
- name: "ums-portal-server-minio-opendesk-credentials"
stringData:
access-key-id: {{ .Values.objectstores.nubus.username | quote }}
@@ -320,4 +378,4 @@ extraSecrets:
secret-key-id: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
- name: "ums-umc-server-smtp-credentials-custom"
stringData:
password: {{ .Values.smtp.password | quote }}
password: ""

View File

@@ -171,15 +171,6 @@ nubusUmcGateway:
replicaCount: {{ .Values.replicas.umsUmcGateway }}
resources:
{{ .Values.resources.umsUmcGateway | toYaml | nindent 4 }}
extraVolumes:
- name: "entrypoint-swp-patches"
configMap:
name: "ums-stack-data-swp-umc-gateway-entrypoint"
defaultMode: 0555
extraVolumeMounts:
- name: "entrypoint-swp-patches"
mountPath: "/entrypoint.d/90-swp.sh"
subPath: "90-swp.sh"
nubusKeycloakBootstrap:
podAnnotations:

View File

@@ -19,7 +19,7 @@ nubusKeycloakExtensions:
registry: {{ .Values.images.nubusKeycloakExtensionHandler.registry }}
repository: {{ .Values.images.nubusKeycloakExtensionHandler.repository }}
tag: {{ .Values.images.nubusKeycloakExtensionHandler.tag }}
proxy:
image:
registry: {{ .Values.images.nubusKeycloakExtensionProxy.registry }}
@@ -40,7 +40,7 @@ nubusLdapServer:
tag: {{ .Values.images.nubusLdapServer.tag }}
dhInitcontainer:
image:
registry: {{ .Values.images.nubusLdapServerDhInitContainer.registry }}
registry: {{ .Values.images.nubusLdapServerDhInitContainer.registry }}
repository: {{ .Values.images.nubusLdapServerDhInitContainer.repository }}
tag: {{ .Values.images.nubusLdapServerDhInitContainer.tag }}
waitForDependency:
@@ -48,7 +48,7 @@ nubusLdapServer:
registry: {{ .Values.images.nubusWaitForDependency.registry }}
repository: {{ .Values.images.nubusWaitForDependency.repository }}
tag: {{ .Values.images.nubusWaitForDependency.tag }}
nubusPortalConsumer:
portalConsumer:
@@ -56,7 +56,7 @@ nubusPortalConsumer:
registry: {{ .Values.images.nubusPortalConsumer.registry }}
repository: {{ .Values.images.nubusPortalConsumer.repository }}
tag: {{ .Values.images.nubusPortalConsumer.tag }}
nubusNotificationsApi:
image:

View File

@@ -28,7 +28,8 @@ config:
{{ .Values.functional.authentication.oidc.clients | toYaml | nindent 6 }}
managed:
clientScopes: [ 'acr', 'web-origins', 'email', 'profile', 'microprofile-jwt', 'role_list', 'offline_access', 'roles', 'address', 'phone' ]
clients: [ 'UMC', 'guardian-management-api', 'guardian-scripts', 'guardian-ui', '${client_account}', '${client_account-console}', '${client_admin-cli}', '${client_broker}', '${client_realm-management}', '${client_security-admin-console}' ]
# 'guardian-management-api', 'guardian-scripts', 'guardian-ui' clients have been added explicitly for the moment (see further down this file)
clients: [ 'UMC', '${client_account}', '${client_account-console}', '${client_admin-cli}', '${client_broker}', '${client_realm-management}', '${client_security-admin-console}' ]
keycloak:
adminUser: "kcadmin"
adminPassword: {{ .Values.secrets.keycloak.adminPassword | quote }}
@@ -570,6 +571,296 @@ config:
post.logout.redirect.uris: "https://{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
defaultClientScopes:
- "opendesk-xwiki-scope"
- name: "guardian-management-api"
clientId: "guardian-management-api"
rootUrl: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
baseUrl: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
protocol: "openid-connect"
publicClient: false
clientAuthenticatorType: "client-secret"
secret: {{ .Values.secrets.keycloak.clientSecret.guardian | quote }}
redirectUris:
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/guardian/*"
fullScopeAllowed: true
standardFlowEnabled: true
implicitFlowEnabled: false
directAccessGrantsEnabled: false
serviceAccountsEnabled: true
protocolMappers:
- name: "Client Host"
protocol: "openid-connect"
protocolMapper: "oidc-usersessionmodel-note-mapper"
consentRequired: false
config:
user.session.note: "clientHost"
userinfo.token.claim: true
id.token.claim: true
access.token.claim: true
claim.name: "clientHost"
jsonType.label: "String"
- name: "Client ID"
protocol: "openid-connect"
protocolMapper: "oidc-usersessionmodel-note-mapper"
consentRequired: false
config:
user.session.note: "client_id"
userinfo.token.claim: true
id.token.claim: true
access.token.claim: true
claim.name: "client_id"
jsonType.label: "String"
- name: "guardian-audience"
protocol: "openid-connect"
protocolMapper: "oidc-audience-mapper"
consentRequired: false
config:
included.client.audience: "guardian"
userinfo.token.claim: false
id.token.claim: false
access.token.claim: true
- name: "audiencemap"
protocol: "openid-connect"
protocolMapper: "oidc-audience-mapper"
consentRequired: false
config:
included.client.audience: "guardian-cli"
userinfo.token.claim: true
id.token.claim: true
access.token.claim: true
- name: "dn"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-attribute-mapper"
consentRequired: false
config:
userinfo.token.claim: false
user.attribute: "LDAP_ENTRY_DN"
id.token.claim: false
access.token.claim: true
claim.name: "dn"
jsonType.label: "String"
- name: "username"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-property-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "username"
id.token.claim: true
access.token.claim: true
claim.name: "preferred_username"
jsonType.label: "String"
- name: "uid"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-attribute-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "uid"
id.token.claim: true
access.token.claim: true
claim.name: "uid"
jsonType.label: "String"
- name: "email"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-property-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "email"
id.token.claim: true
access.token.claim: true
claim.name: "email"
jsonType.label: "String"
- name: "Client IP Address"
protocol: "openid-connect"
protocolMapper: "oidc-usersessionmodel-note-mapper"
consentRequired: false
config:
user.session.note: "clientAddress"
userinfo.token.claim: true
id.token.claim: true
access.token.claim: true
claim.name: "clientAddress"
jsonType.label: "String"
- name: "guardian-scripts"
clientId: "guardian-scripts"
description: ""
rootUrl: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
adminUrl: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
baseUrl: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
surrogateAuthRequired: false
enabled: true
alwaysDisplayInConsole: false
clientAuthenticatorType: "client-secret"
redirectUris:
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/univention/guardian/*"
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/guardian/*"
webOrigins:
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
bearerOnly: false
consentRequired: false
standardFlowEnabled: true
implicitFlowEnabled: false
directAccessGrantsEnabled: true
serviceAccountsEnabled: false
publicClient: true
frontchannelLogout: false
protocol: "openid-connect"
fullScopeAllowed: true
protocolMappers:
- name: "email"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-property-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "email"
id.token.claim: true
access.token.claim: true
claim.name: "email"
jsonType.label: "String"
- name: "guardian-audience"
protocol: "openid-connect"
protocolMapper: "oidc-audience-mapper"
consentRequired: false
config:
included.client.audience: "guardian"
id.token.claim: false
access.token.claim: true
userinfo.token.claim: false
- name: "username"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-property-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "username"
id.token.claim: true
access.token.claim: true
claim.name: "preferred_username"
jsonType.label: "String"
- name: "uid"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-attribute-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "uid"
id.token.claim: true
access.token.claim: true
claim.name: "uid"
jsonType.label: "String"
- name: "audiencemap"
protocol: "openid-connect"
protocolMapper: "oidc-audience-mapper"
consentRequired: false
config:
included.client.audience: "guardian-scripts"
id.token.claim: true
access.token.claim: true
userinfo.token.claim: true
- name: "dn"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-attribute-mapper"
consentRequired: false
config:
aggregate.attrs: false
multivalued: false
userinfo.token.claim: false
user.attribute: "LDAP_ENTRY_DN"
id.token.claim: false
access.token.claim: true
claim.name: "dn"
jsonType.label: "String"
defaultClientScopes:
- "web-origins"
- "acr"
- "roles"
- "profile"
- "email"
optionalClientScopes:
- "address"
- "phone"
- "offline_access"
- "microprofile-jwt"
- name: "guardian-ui"
clientId: "guardian-ui"
rootUrl: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
baseUrl: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
clientAuthenticatorType: "client-secret"
redirectUris:
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/univention/guardian/*"
standardFlowEnabled: true
publicClient: true
implicitFlowEnabled: false
directAccessGrantsEnabled: false
serviceAccountsEnabled: false
protocol: "openid-connect"
fullScopeAllowed: true
protocolMappers:
- name: "uid"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-attribute-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "uid"
id.token.claim: true
access.token.claim: true
claim.name: "uid"
jsonType.label: "String"
- name: "username"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-property-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "username"
id.token.claim: true
access.token.claim: true
claim.name: "preferred_username"
jsonType.label: "String"
- name: "dn"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-attribute-mapper"
consentRequired: false
config:
userinfo.token.claim: "false"
user.attribute: "LDAP_ENTRY_DN"
id.token.claim: false
access.token.claim: true
claim.name: "dn"
jsonType.label: "String"
- name: "audiencemap"
protocol: "openid-connect"
protocolMapper: "oidc-audience-mapper"
consentRequired: false
config:
included.client.audience: "guardian"
id.token.claim: true
access.token.claim: true
userinfo.token.claim: true
- name: "email"
protocol: "openid-connect"
protocolMapper: "oidc-usermodel-property-mapper"
consentRequired: false
config:
userinfo.token.claim: true
user.attribute: "email"
id.token.claim: true
access.token.claim: true
claim.name: "email"
jsonType.label: "String"
- name: "guardian-audience"
protocol: "openid-connect"
protocolMapper: "oidc-audience-mapper"
consentRequired: false
config:
included.client.audience: "guardian"
id.token.claim: false
access.token.claim: true
userinfo.token.claim: false
containerSecurityContext:
allowPrivilegeEscalation: false

View File

@@ -36,7 +36,7 @@ dovecot:
submission:
enabled: true
ssl: "no"
host: "postfix:25"
host: "{{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain }}:25"
certificate:
secretName: {{ .Values.ingress.tls.secretName | quote }}

View File

@@ -59,15 +59,15 @@ environment:
OPENPROJECT_SOUVAP__NAVIGATION__SECRET: {{ .Values.secrets.centralnavigation.apiKey | quote }}
OPENPROJECT_SOUVAP__NAVIGATION__URL: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/univention/portal/navigation.json?base=https%3A//{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
OPENPROJECT_SMTP__DOMAIN: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
OPENPROJECT_SMTP__USER__NAME: {{ .Values.smtp.username | quote }}
OPENPROJECT_SMTP__PASSWORD: {{ .Values.smtp.password | quote }}
OPENPROJECT_SMTP__PORT: {{ .Values.smtp.port | quote }}
OPENPROJECT_SMTP__USER__NAME: ""
OPENPROJECT_SMTP__PASSWORD: ""
OPENPROJECT_SMTP__PORT: 25
OPENPROJECT_SMTP__SSL: "false" # (default=false)
OPENPROJECT_SMTP__ADDRESS: {{ .Values.smtp.host | quote }}
OPENPROJECT_SMTP__AUTHENTICATION: "plain"
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true"
OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "peer"
OPENPROJECT_MAIL__FROM: "{{ .Values.smtp.localpartNoReply }}@{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.openproject }}.{{ end }}{{ .Values.global.domain }}"
OPENPROJECT_SMTP__ADDRESS: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
OPENPROJECT_SMTP__AUTHENTICATION: "none"
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "false"
OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "none"
OPENPROJECT_MAIL__FROM: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
OPENPROJECT_HOME__URL: {{ printf "https://%s.%s/" .Values.global.hosts.nubus .Values.global.domain | quote }}
OPENPROJECT_OPENID__CONNECT_KEYCLOAK_ISSUER: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
OPENPROJECT_OPENID__CONNECT_KEYCLOAK_POST__LOGOUT__REDIRECT__URI: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/"

View File

@@ -57,6 +57,17 @@ repositories:
url: "{{ .Values.global.helmRegistry | default .Values.charts.mariadb.registry }}/\
{{ .Values.charts.mariadb.repository }}"
# openDesk dkimpy-milter
# https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-dkimpy-milter
- name: "dkimpy-repo"
keyring: "../../files/gpg-pubkeys/opencode.gpg"
verify: {{ .Values.charts.dkimpy.verify }}
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
oci: true
url: "{{ .Values.global.helmRegistry | default .Values.charts.dkimpy.registry }}/\
{{ .Values.charts.dkimpy.repository }}"
# openDesk Postfix
# https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-postfix
- name: "postfix-repo"
@@ -178,6 +189,14 @@ releases:
installed: {{ .Values.postfix.enabled }}
timeout: 900
- name: "opendesk-dkimpy-milter"
chart: "dkimpy-repo/{{ .Values.charts.dkimpy.name }}"
version: "{{ .Values.charts.dkimpy.version }}"
values:
- "values-dkimpy.yaml.gotmpl"
installed: {{ .Values.dkimpy.enabled }}
timeout: 900
- name: "clamav"
chart: "clamav-repo/{{ .Values.charts.clamav.name }}"
version: "{{ .Values.charts.clamav.version }}"

View File

@@ -0,0 +1,44 @@
# SPDX-FileCopyrightText: Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
# SPDX-License-Identifier: Apache-2.0
---
containerSecurityContext:
allowPrivilegeEscalation: true
capabilities: {}
enabled: true
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
privileged: false
seLinuxOptions:
{{ .Values.seLinuxOptions.dkimpy | toYaml | nindent 4 }}
global:
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
image:
registry: {{ .Values.global.imageRegistry | default .Values.images.dkimpy.registry | quote }}
repository: {{ .Values.images.dkimpy.repository | quote }}
tag: {{ .Values.images.dkimpy.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podSecurityContext:
enabled: true
fsGroup: 1000
configuration:
domain: "{{ .Values.global.domain }}{{ if .Values.global.mailDomain }}, {{ .Values.global.mailDomain }}{{ end }}"
key:
{{ .Values.smtp.dkim.key | toYaml | nindent 4 }}
mode: "s"
selector: {{ .Values.smtp.dkim.selector }}
useED25519: {{ .Values.smtp.dkim.useED25519 }}
replicaCount: {{ .Values.replicas.dkimpy }}
resources:
{{ .Values.resources.dkimpy | toYaml | nindent 2 }}
...

View File

@@ -3,6 +3,7 @@
---
cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
containerSecurityContext:
allowPrivilegeEscalation: false
@@ -35,19 +36,32 @@ job:
retries: 10
wait: 30
users:
- username: "xwiki_user"
password: {{ .Values.secrets.mariadb.xwikiUser | quote }}
- username: "openxchange_user"
password: {{ .Values.secrets.mariadb.openxchangeUser | quote }}
- username: "nextcloud_user"
- username: {{ .Values.databases.nextcloud.username | quote }}
password: {{ .Values.secrets.mariadb.nextcloudUser | quote}}
connectionLimit: {{ .Values.databases.nextcloud.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
# OX and XWiki are using the db's `root` users (see `database.yaml`). So we are statically referencing their dedicated
# users for the moment.
- username: "openxchange_user"
# - username: {{ .Values.databases.xwiki.username | quote }}
password: {{ .Values.secrets.mariadb.openxchangeUser | quote }}
connectionLimit: {{ .Values.databases.oxAppsuite.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
- username: "xwiki_user"
# - username: {{ .Values.databases.oxAppsuite.username | quote }}
password: {{ .Values.secrets.mariadb.xwikiUser | quote }}
connectionLimit: {{ .Values.databases.xwiki.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
databases:
- name: "xwiki"
user: "xwiki_user"
- name: "nextcloud"
user: "nextcloud_user"
- name: {{ .Values.databases.nextcloud.name | quote }}
user: {{ .Values.databases.nextcloud.username | quote }}
# OX and XWiki are using the db's `root` users (see `database.yaml`). So we are statically referencing their dedicated
# users for the moment.
- name: "openxchange"
user: "openxchange_user"
# - name: {{ .Values.databases.oxAppsuite.name | quote }}
# user: {{ .Values.databases.oxAppsuite.username | quote }}
- name: "xwiki"
user: "xwiki_user"
# - name: {{ .Values.databases.xwiki.name | quote }}
# user: {{ .Values.databases.xwiki.username | quote }}
mariadb:
rootPassword: {{ .Values.secrets.mariadb.rootPassword | quote }}

View File

@@ -85,7 +85,8 @@ persistence:
provisioning:
enabled: true
cleanupAfterFinished:
enabled: true
enabled: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
seconds: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
extraCommands:
- "mc anonymous set download provisioning/ums/portal-assets"
buckets:

View File

@@ -49,6 +49,9 @@ postfix:
- fileName: "sasl_passwd.map"
content:
- {{ printf "%s %s:%s" .Values.smtp.host .Values.smtp.username .Values.smtp.password | quote }}
{{- if .Values.dkimpy.enabled }}
dkimpyHost: "opendesk-dkimpy-milter.{{ .Release.Namespace }}.svc.{{.Values.cluster.networking.domain }}:8892"
{{- end }}
rspamdHost: ""
relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }}

View File

@@ -1,6 +1,10 @@
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
# SPDX-License-Identifier: Apache-2.0
---
cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
@@ -17,8 +21,6 @@ containerSecurityContext:
seLinuxOptions:
{{ .Values.seLinuxOptions.postgresql | toYaml | nindent 4 }}
job:
podSecurityContext:
enabled: true
fsGroup: 1001
@@ -43,36 +45,43 @@ image:
job:
users:
- username: "keycloak_user"
- username: {{ .Values.databases.keycloak.username | quote }}
password: {{ .Values.secrets.postgresql.keycloakUser | quote }}
- username: "openproject_user"
connectionLimit: {{ .Values.databases.keycloak.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
- username: {{ .Values.databases.openproject.username | quote }}
password: {{ .Values.secrets.postgresql.openprojectUser | quote }}
- username: "keycloak_extensions_user"
connectionLimit: {{ .Values.databases.openproject.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
- username: {{ .Values.databases.keycloakExtension.username | quote }}
password: {{ .Values.secrets.postgresql.keycloakExtensionUser | quote }}
- username: "matrix_user"
connectionLimit: {{ .Values.databases.keycloakExtension.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
- username: {{ .Values.databases.synapse.username | quote }}
password: {{ .Values.secrets.postgresql.matrixUser | quote }}
- username: "notificationsapi_user"
connectionLimit: {{ .Values.databases.synapse.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
- username: {{ .Values.databases.umsNotificationsApi.username | quote }}
password: {{ .Values.secrets.postgresql.umsNotificationsApiUser | quote }}
- username: "guardianmanagementapi_user"
connectionLimit: {{ .Values.databases.umsNotificationsApi.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
- username: {{ .Values.databases.umsGuardianManagementApi.username | quote }}
password: {{ .Values.secrets.postgresql.umsGuardianManagementApiUser | quote }}
- username: "selfservice_user"
connectionLimit: {{ .Values.databases.umsGuardianManagementApi.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
- username: {{ .Values.databases.umsSelfservice.username | quote }}
password: {{ .Values.secrets.postgresql.umsSelfserviceUser | quote }}
connectionLimit: {{ .Values.databases.umsSelfservice.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
databases:
- name: "keycloak"
user: "keycloak_user"
- name: "keycloak_extensions"
user: "keycloak_extensions_user"
- name: "openproject"
user: "openproject_user"
- name: "matrix"
user: "matrix_user"
- name: {{ .Values.databases.keycloak.name | quote }}
user: {{ .Values.databases.keycloak.username | quote }}
- name: {{ .Values.databases.keycloakExtension.name | quote }}
user: {{ .Values.databases.keycloakExtension.username | quote }}
- name: {{ .Values.databases.openproject.name | quote }}
user: {{ .Values.databases.openproject.username | quote }}
- name: {{ .Values.databases.synapse.name | quote }}
user: {{ .Values.databases.synapse.username | quote }}
additionalParams: "ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0"
- name: "guardianmanagementapi"
user: "guardianmanagementapi_user"
- name: "notificationsapi"
user: "notificationsapi_user"
- name: "selfservice"
user: "selfservice_user"
- name: {{ .Values.databases.umsGuardianManagementApi.name | quote }}
user: {{ .Values.databases.umsGuardianManagementApi.username | quote }}
- name: {{ .Values.databases.umsNotificationsApi.name | quote }}
user: {{ .Values.databases.umsNotificationsApi.username | quote }}
- name: {{ .Values.databases.umsSelfservice.name | quote }}
user: {{ .Values.databases.umsSelfservice.username | quote }}
persistence:
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}

View File

@@ -137,12 +137,10 @@ properties:
"property:xwiki:XWiki.XWikiServerXwiki^XWiki.XWikiServerClass.server": "{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}"
"property:xwiki:XWiki.XWikiServerXwiki^XWiki.XWikiServerClass.port": 443
## SMTP settings
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.from": "{{ .Values.smtp.localpartNoReply }}@{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.xwiki }}.{{ end }}{{ .Values.global.domain }}"
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.host": {{ .Values.smtp.host | quote }}
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.port": {{ .Values.smtp.port | quote }}
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.username": {{ .Values.smtp.username | quote }}
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.password": {{ .Values.smtp.password | quote }}
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.properties": "mail.smtp.starttls.enable=true"
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.from": "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.host": {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.port": 25
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.properties": "mail.smtp.starttls.enable=false"
## Link LDAP users and users authenticated through OIDC
"property:xwiki:LDAPUserImport.WebHome^LDAPUserImport.LDAPUserImportConfigClass.addOIDCObject": 1
"property:xwiki:LDAPUserImport.WebHome^LDAPUserImport.LDAPUserImportConfigClass.OIDCIssuer": "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"

View File

@@ -60,6 +60,18 @@ charts:
name: "cryptpad"
version: "0.0.19"
verify: true
dkimpy:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
# upstreamRegistry: "https://registry.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/opendesk-dkimpy-milter/opendesk-dkimpy-milter"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
# upstreamMirrorStartFrom: ["1", "0", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-dkimpy-milter"
name: "opendesk-dkimpy-milter"
version: "1.0.0"
verify: true
dovecot:
# providerCategory: "Platform"
# providerResponsible: "Open-Xchange"
@@ -78,7 +90,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-element"
version: "3.3.0"
version: "3.3.2"
verify: true
elementWellKnown:
# providerCategory: "Platform"
@@ -88,7 +100,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-well-known"
version: "3.3.0"
version: "3.3.2"
verify: true
home:
# providerCategory: "Platform"
@@ -130,7 +142,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-mariadb"
name: "mariadb"
version: "2.2.1"
version: "2.3.1"
verify: true
matrixNeoboardWidget:
# providerCategory: "Platform"
@@ -180,7 +192,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-matrix-user-verification-service"
version: "3.3.0"
version: "3.3.2"
verify: true
memcached:
# providerCategory: "Community"
@@ -200,7 +212,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-migrations"
name: "opendesk-migrations"
version: "1.2.1"
version: "1.2.2"
verify: true
minio:
# providerCategory: "Community"
@@ -220,7 +232,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud"
version: "3.0.0"
version: "3.1.0"
verify: true
nextcloudManagement:
# providerCategory: "Platform"
@@ -230,7 +242,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-nextcloud"
name: "opendesk-nextcloud-management"
version: "3.0.0"
version: "3.1.0"
verify: true
nginx:
# providerCategory: "Community"
@@ -249,10 +261,12 @@ charts:
# upstreamRepository: "nubus/charts/nubus"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
# upstreamMirrorStartFrom: ["0", "19", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
# registry: "registry.opencode.de"
# repository: "bmi/opendesk/components/supplier/univention/charts-mirror"
registry: "artifacts.software-univention.de"
repository: "nubus-dev/charts"
name: "nubus"
version: "0.33.0"
version: "0.39.2-pre-tkintscher-fix-fsnotify-load"
verify: true
opendeskKeycloakBootstrap:
# providerCategory: "Platform"
@@ -338,7 +352,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-postfix"
name: "postfix"
version: "2.2.0"
version: "2.3.0"
verify: true
postgresql:
# providerCategory: "Platform"
@@ -348,7 +362,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-postgresql"
name: "postgresql"
version: "2.0.5"
version: "2.1.1"
verify: true
redis:
# providerCategory: "Community"
@@ -368,7 +382,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-synapse"
version: "3.3.0"
version: "3.3.2"
verify: true
synapseCreateAccount:
# providerCategory: "Platform"
@@ -378,7 +392,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-synapse-create-account"
version: "3.3.0"
version: "3.3.2"
verify: true
synapseWeb:
# providerCategory: "Platform"
@@ -388,7 +402,7 @@ charts:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
name: "opendesk-synapse-web"
version: "3.3.0"
version: "3.3.2"
verify: true
xwiki:
# providerCategory: "Supplier"

View File

@@ -2,62 +2,76 @@
# SPDX-License-Identifier: Apache-2.0
---
databases:
defaults:
userConnectionLimit: 100
keycloak:
name: "keycloak"
host: "postgresql"
port: 5432
username: "keycloak_user"
password: ""
connectionLimit: ~
keycloakExtension:
name: "keycloak_extensions"
host: "postgresql"
port: 5432
username: "keycloak_extensions_user"
password: ""
connectionLimit: ~
nextcloud:
name: "nextcloud"
host: "mariadb"
port: 3306
username: "nextcloud_user"
password: ""
connectionLimit: ~
openproject:
name: "openproject"
host: "postgresql"
port: 5432
username: "openproject_user"
password: ""
connectionLimit: ~
oxAppsuite:
host: "mariadb"
name: "configdb"
host: "mariadb"
port: 3306
username: "root"
password: ""
connectionLimit: ~
synapse:
host: "postgresql"
name: "matrix"
host: "postgresql"
port: 5432
username: "matrix_user"
password: ""
port: 5432
connectionLimit: ~
umsGuardianManagementApi:
name: "guardianmanagementapi"
host: "postgresql"
port: 5432
username: "guardianmanagementapi_user"
password: ""
connectionLimit: ~
umsNotificationsApi:
name: "notificationsapi"
host: "postgresql"
port: 5432
username: "notificationsapi_user"
password: ""
connectionLimit: ~
umsSelfservice:
name: "selfservice"
host: "postgresql"
port: 5432
username: "selfservice_user"
password: ""
connectionLimit: 10
xwiki:
name: "xwiki"
host: "mariadb"
port: 3306
username: "root"
password: ""
connectionLimit: ~
...

View File

@@ -30,15 +30,17 @@ functional:
# Disable to not support Matrix federation with your installation.
enabled: true
email:
systemGenerated:
# By disabling all mails are sent from @<domain> instead of @<component>.<domain>.
useComponentInSenderdomain: true
filestore:
quota:
# Set the default quota for all users in GB
default: 1
# Options related to file sharing, changing these options might require a restart of the `opendesk-nextcloud-php` Pod(s).
sharing:
# Enables sharing of files with external participants (create external links, send links by mail and allow external upload in shared folders).
# If you disable this option existing external shares stop working, when re-enabling it the old shares are available again.
enableExternalSharing: false
# Enforces passwords to be used on external shares.
enforceSharingPasswords: true
# Nextcloud specific configuration
nextcloud:
retentionObligation:
@@ -50,11 +52,11 @@ functional:
# Ref.: https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/config_sample_php_parameters.html#versions-retention-obligation
versions: "auto"
# yamllint enable rule:line-length
dataProtection:
matrixPresence:
# Enable to allow information about the user presence status to be shared.
# Ref.: https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html#presence
enabled: false
...

View File

@@ -20,7 +20,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk"
tag: "24.04.6.1.1@sha256:6237af013065838be27faae69b26feec63de6de8412499285f5379d74fef7387"
tag: "24.04.6.2.1@sha256:7de9ac6ce5a256b0f74a56a4654acd851502dc9e3ed4d29949ba5642bacae308"
cryptpad:
# providerCategory: "Supplier"
# providerResponsible: "XWiki"
@@ -30,6 +30,14 @@ images:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/xwiki/images-mirror/cryptpad"
tag: "opendesk-20231222@sha256:f4d20d5c38c87b11ed1a1b46ef6a3633d32c6758ebdff8556458f040318fa5e2"
dkimpy:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
# upstreamRegistry: "https://registry.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/images/dkimpy-milter"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/dkimpy-milter"
tag: "1.1.0@sha256:f140c7fc3fd9636addc612edd6e10f6aefa69e34ff637c95ce9036a32e44555f"
dovecot:
# providerCategory: "Supplier"
# providerResponsible: "Open-Xchange"
@@ -205,7 +213,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-migrations"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-migrations"
tag: "1.2.0@sha256:42ebe655680466fd4b1647719752f1a4e7482eb2bc44abff806c4ac69fcda3e8"
tag: "1.2.1@sha256:241561c51dee3ccd4d54cf732020634291f124025946e6be983f850bbf4eb1d3"
milter:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -229,7 +237,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud-apache2"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud-apache2"
tag: "1.1.24@sha256:c9222da8be7af12c9076b41d1a14e019725afc075e1aaa2b727be21c1bf45f10"
tag: "1.2.0@sha256:f1c64bc7b9d1993a7c79ca73c1594fdea49ef4adf4ebe4286e01ccc1ad9290c7"
nextcloudExporter:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -245,7 +253,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud-management"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud-management"
tag: "1.4.4@sha256:b70c159d6a1827748ca1f8fe0b9fd5b011eaed8719172105e1e9c8b8d776cf97"
tag: "1.5.3@sha256:19f5354a951b043327906d8670c0466e2a00317ad0dd4b99d0edf882e213d22f"
nextcloudPHP:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -253,7 +261,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud-php"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nextcloud-php"
tag: "1.10.3@sha256:e659ab95d0d3a33d4937354449c12fa46fe2669a866bbf432a9d729bed6d54f7"
tag: "1.11.3@sha256:c88af69971e2b2b1ead90db69d6af3355be5309d6c91b2b6a18fac2c6781b760"
nubusDataLoader:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -263,7 +271,7 @@ images:
# upstreamMirrorStartFrom: ["0", "41", "5"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/data-loader"
tag: "0.60.0@sha256:9b43a66c32f4f66143db00b71cc62966df6ed809ec023a0d573a015f5d15305a"
tag: "0.61.0@sha256:598e9fa176c71a6da90ab200ca52abd88176c8cb22a1bf56fec9cd0daf58f58f"
nubusGuardianAuthorizationApi:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -303,7 +311,7 @@ images:
# upstreamMirrorStartFrom: ["0", "3", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/guardian-init"
tag: "0.9.1@sha256:6006fb1c2779b906e7725df524f2587b2a610cc442793bf8f16b2b4b8c0494fb"
tag: "0.11.0@sha256:c691aecaf2074a9f1cc6ec5277a70792642bd677f0ff58a6278041b2d99c9d51"
nubusKeycloak:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -311,9 +319,13 @@ images:
# upstreamRepository: "keycloak-keycloak"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+).+$'
# upstreamMirrorStartFrom: ["22", "0", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-keycloak"
tag: "24.0.3-ucs1@sha256:cc66a1730abdd5abe88ac5cf045b6558f289bf1ae8d077ee884a42d785742f8b"
# TODO: Why is there a newer Keycloak than in Nubus 0.39.1 ?
# registry: "registry.opencode.de"
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-keycloak"
# tag: "24.0.3-ucs1@sha256:cc66a1730abdd5abe88ac5cf045b6558f289bf1ae8d077ee884a42d785742f8b"
registry: docker.software-univention.de
repository: keycloak-keycloak
tag: "22.0.3-ucs2@sha256:cf11399add8a9e73622fb52aa225a207ebc5b07514b8d634f591e5b540ba9731"
nubusKeycloakBootstrap:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -323,7 +335,9 @@ images:
# upstreamMirrorStartFrom: ["0", "1", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-bootstrap"
tag: "0.1.0@sha256:351097e9e7b469f2fc149fe612ec6ad515d5e6b081d7e2785bd926a1d77209d2"
# TODO: Nubus 0.39.1 is using this image twice in different versions
# tag: "0.1.0@sha256:351097e9e7b469f2fc149fe612ec6ad515d5e6b081d7e2785bd926a1d77209d2"
tag: "0.1.2@sha256:ea462e3e40843215814bddae0668dc56102864d99127ad3c8d9816d741886ac0"
nubusKeycloakExtensionHandler:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -333,7 +347,7 @@ images:
# upstreamMirrorStartFrom: ["0", "0", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-handler"
tag: "0.9.4@sha256:247182a965cc56fe2a891d42a7cfe84205804a9e58dd8f0a8191726a68cb9db1"
tag: "0.10.0@sha256:7aa5bac4821c9226fd74c6a2883f7c24d214b4610d516574866cf933ee1be080"
nubusKeycloakExtensionProxy:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -343,7 +357,7 @@ images:
# upstreamMirrorStartFrom: ["0", "0", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-proxy"
tag: "0.9.4@sha256:a572fe076a2ef5966433fec478c92cffade816e71f2b4661bd8dbcb9e60c8c2f"
tag: "0.10.0@sha256:a5f6ae65732f7fb9d7ceae11f1c412b109d230e197075d8a8e1d989c87a0309d"
nubusLdapNotifier:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -353,7 +367,7 @@ images:
# upstreamMirrorStartFrom: ["0", "8", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-notifier"
tag: "0.15.2@sha256:1f2a9d2136c8e87a4c4a59a94a2235d00e969c98bd7bfe75707a299918f271b5"
tag: "0.20.0@sha256:d891fe11075740ff0fe1694b2c5fb72c43ac6d823904af8593e0ab359b9175e0"
nubusLdapServer:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -363,7 +377,11 @@ images:
# upstreamMirrorStartFrom: ["0", "8", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server"
tag: "0.17.1@sha256:5b7b629b9655c7bb2857013f3399cefe5bdd3963d568bbf77d6d488c005e3b3b"
# TODO: Unclear what this is
# repository: "bmi/opendesk/components/platform-development/images/temp-nubus-ldap-2.5-upgrade"
# tag: "1.1.20@sha256:90f46b8817fa05e6e3ac3b2f053911198675805fb82db8240bfa41239d7e7c61"
tag: "0.20.0@sha256:ad73addd9201378fd5c978ab6bfc64bbd23bb279fc065cade9cb2f8e48a9c85f"
# TODO: Is this at all in use? Did not find this in the 0.39.1 output of Nubus.
nubusLdapServerDhInitContainer:
# providerCategory: 'Community'
# providerResponsible: 'Univention'
@@ -405,7 +423,15 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/notifications-api"
tag: "0.27.0@sha256:d99173199f20c701b29b8a3c1a46465085a873b37f413882e7d2e106e258c35a"
tag: "0.33.0@sha256:0ddb81d4789b2f43b55ded46ff88db4b99a68e7b1006e35877f582aac875c9ad"
nubusOpendeskExtension:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
# upstreamRegistry: "https://registry.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/images/opendesk-nubus"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/opendesk-nubus"
tag: "1.2.0@sha256:88be278c7e3da0eeeef08510319c4997b8a62ecdb5e13491f8c4ca8d5640a258"
nubusOpenPolicyAgent:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -425,7 +451,7 @@ images:
# upstreamMirrorStartFrom: ["0", "10", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-extension"
tag: "0.10.0@sha256:f6f32ce0486594eca9c8682b10f60e9d174a526d5acd2ba4d0abcb8f522539b9"
tag: "0.11.0@sha256:2cb5a9683b6ff81b995a5c71da52c2ff8177b662bb0be8f11e9cd0c6b48d8a11"
nubusPortalConsumer:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -435,7 +461,7 @@ images:
# upstreamMirrorStartFrom: ["0", "27", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-consumer"
tag: "0.27.0@sha256:e86bf827d1e93b61473a0730492f48f8dbf0d056b79dd9ecde7af1612696b144"
tag: "0.32.0@sha256:7f38a8db34bfe67c9ad0711c0a2c615e278b20a1a7b66b77bd28faa339eaf897"
nubusPortalExtension:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -455,7 +481,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-frontend"
tag: "0.29.0@sha256:3af3d5d24f690557b4a644d5720113dca0c802465b0e43466b49db27acd37939"
tag: "0.33.0@sha256:9cce16009cc478ece11704521347fc4938a3ac5ee4570ac439dd50b08452a3ff"
nubusPortalListener:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -475,7 +501,7 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "4"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-server"
tag: "0.27.0@sha256:e1ad659feb4a1948d07e6e7d99b94b6bdbd4525d96f4cf9a010b75189f0082fc"
tag: "0.33.1@sha256:82e9002786a9d1ec524c0f386838ac4ee1fa9a581b66d2e353ea57cc01e26a95"
nubusProvisioningDispatcher:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -485,7 +511,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-dispatcher"
tag: "0.28.3@sha256:79c81b0143e78c7cabb1efd63d47530eac686fba11db57c173abd8ebdd396778"
tag: "0.36.0@sha256:34f03f48b4c9b470f9809b5fa6bfd6e96346e3f99ac0a2d7eaeac3cf9a4a633d"
nubusProvisioningEventsAndConsumerApi:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -495,7 +521,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-events-and-consumer-api"
tag: "0.28.3@sha256:5b0a2c52d715fde613ecfedb3a3f5e47b9eb73cdcf4c373a9cc58248a919f2bf"
tag: "0.36.0@sha256:69dd2946e7b05384304eeeca50dea645d20f7658d225e7c532381c3bdf2027ce"
nubusProvisioningPrefill:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -505,7 +531,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-prefill"
tag: "0.28.3@sha256:a98bce46144a6ff943b0432b66277393b7b476b8969b221b9069c708d3380f5d"
tag: "0.36.0@sha256:147406648848c068aacc2cb467633d51c65cddbcaa622c352e5fe5349bf92ce6"
nubusProvisioningUdmListener:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -515,7 +541,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-listener"
tag: "0.28.3@sha256:b9c452e55e6716f93309bef0af7d401e218cd1e6ea9ad3d2819fb10dd631aecd"
tag: "0.36.0@sha256:8a960db9ff94b3c8a63be1588e47ccc1f62f3071abdce7ee2ef89afbe2674eed"
nubusProvisioningUdmTransformer:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -525,7 +551,7 @@ images:
# upstreamMirrorStartFrom: ["0", "14", "0"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-transformer"
tag: "0.29.0@sha256:68e27eb9560d2729e9065da3573f28073c5e53fedabac4d19562c4b8c6c1d1f3"
tag: "0.36.0@sha256:8080b55e705391aa2ac9b11db11dc1f984b5626271b2f175bfe26967b857b06d"
nubusSelfserviceInvitation:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -533,9 +559,12 @@ images:
# upstreamRepository: "nubus/images/selfservice-invitation"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
# upstreamMirrorStartFrom: ["0", "3", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/selfservice-invitation"
tag: "0.6.4@sha256:3fcc56c2e039a5a503183ec272fea334083079ceb83c8af7283f9be9b4334d71"
# TODO: Why not mirrored?
# registry: "registry.opencode.de"
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/selfservice-invitation"
repository: nubus/images/selfservice-invitation
registry: artifacts.software-univention.de
tag: "0.6.5@sha256:5630c9df3da4134789d2ebafad7de9062375d21547a2074827b680debd7a909e"
nubusSelfserviceListener:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -545,15 +574,16 @@ images:
# upstreamMirrorStartFrom: ["0", "3", "2"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/selfservice-listener"
tag: "0.6.4@sha256:9605072b60d832ba165d8b7f9b1b7195693e7d5744479af321e4cf242f9ea500"
nubusStackGateway:
# providerCategory: "Community"
# providerResponsible: "Univention"
# upstreamRegistry: "https://registry-1.docker.io"
# upstreamRepository: "bitnami/nginx"
registry: "registry-1.docker.io"
repository: "bitnami/nginx"
tag: "1.25.4@sha256:dd352b597f4c38ae24abec411710f4249fb5c793293c7ed04737db6b41d32d24"
tag: "0.6.5@sha256:a9724fd41cb89a9bdf231ea8699126d2d3503dc894fe9510a1e080ab8408838d"
# TODO: Removed in Nubus
# nubusStackGateway:
# # providerCategory: "Community"
# # providerResponsible: "Univention"
# # upstreamRegistry: "https://registry-1.docker.io"
# # upstreamRepository: "bitnami/nginx"
# registry: "registry-1.docker.io"
# repository: "bitnami/nginx"
# tag: "1.25.4@sha256:dd352b597f4c38ae24abec411710f4249fb5c793293c7ed04737db6b41d32d24"
nubusUdmRestApi:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -563,27 +593,27 @@ images:
# upstreamMirrorStartFrom: ["0", "9", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/udm-rest-api"
tag: "0.19.0@sha256:41482c459655afa36eaf9ec21354ff8417e4da5e3a787ec2f865730952f6bb61"
tag: "0.21.0@sha256:f3d189dd0ca619778c907569ddedbdf8772fba26f26cf9e6b8cde2a62618da63"
nubusUmcGateway:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
# upstreamRegistry: "https://artifacts.software-univention.de"
# upstreamRepository: "nubus/images/umc-gateway"
# upstreamRepository: "nubus-dev/images/umc-gateway"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
# upstreamMirrorStartFrom: ["0", "7", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-gateway"
tag: "0.22.2@sha256:fe4d2c148946da6f5e92201f398ebd0d5a72795c50648993bd220ea1e228658d"
tag: "umc-gateway:0.27.1-pre-tkintscher-fix-fsnotify-load"
nubusUmcServer:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
# upstreamRegistry: "https://artifacts.software-univention.de"
# upstreamRepository: "nubus/images/umc-server"
# upstreamRepository: "nubus-dev/images/umc-server"
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
# upstreamMirrorStartFrom: ["0", "7", "3"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-server"
tag: "0.22.2@sha256:474497f561c3532b37b7d5e77ec36bd1fefc4fbeaab9747b481533b0da086586"
tag: "umc-server:0.27.1-pre-tkintscher-fix-fsnotify-load"
nubusWaitForDependency:
# providerCategory: "Supplier"
# providerResponsible: "Univention"
@@ -611,7 +641,7 @@ images:
# upstreamMirrorStartFrom: ["13", "1", "1"]
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/openproject/images-mirror/open_desk"
tag: "14.3.0@sha256:922621b394c1a60e1c427b866284ac636b35717f03bde89302131ad369fbf9ad"
tag: "14.4.0@sha256:0c1ee5467b5c7888f38eae88a712c2eec6c96995b85f09e0c27705c09f450a70"
openprojectBootstrap:
# providerCategory: "Platform"
# providerResponsible: "openDesk"
@@ -763,7 +793,7 @@ images:
# upstreamRepository: "bmi/opendesk/components/platform-development/images/postfix"
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/platform-development/images/postfix"
tag: "1.0.0@sha256:61e4661a7323101dfb51c85c5a48c345c75436f3f533176f049d2660d711a8a5"
tag: "2.0.0@sha256:5b2432dc09318db172a593bca860887ee9d713b9987db64f8b265f3e08a1d374"
postgresql:
# providerCategory: "Community"
# providerResponsible: "openDesk"

View File

@@ -19,6 +19,9 @@ collabora:
cryptpad:
enabled: true
namespace: ~
dkimpy:
enabled: false
namespace: ~
dovecot:
enabled: true
namespace: ~

View File

@@ -1,62 +1,140 @@
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
# SPDX-License-Identifier: Apache-2.0
---
# Before increasing the replicas of components, please consult the scaling documentation at "docs/scaling.md" to ensure
# that scaling of the respective component is possible and has the desired effect.
# This file contains annotations to (later) generate parts of "docs/scaling.md".
# When adding new components in here, do not forget to add them as well to
# `../test/values.yaml.gotmpl` to ensure their linting coverage.
replicas:
# clamav-simple
# -- component: Antivirus (ClamAV)
# -- scalable: true
# -- comment: clamav-simple - supports `ReadWriteOnce` PVCs.
clamav: 1
# clamav-distributed
# -- scalable: true
# -- comment: clamav-distributed - requires `ReadWriteMany` PVCs.
clamd: 1
collabora: 1
cryptpad: 1
dovecot: 1
element: 1
# clamav-distributed
# -- scalable: true
# -- comment: clamav-distributed - You do not want to scale this service, as it just updates the signature files centrally an should be a singleton.
freshclam: 1
# clamav-distributed
# -- scalable: true
# -- comment: clamav-distributed - requires `ReadWriteMany` PVCs.
icap: 1
intercomService: 1
jibri: 1
jicofo: 1
jitsi: 1
jitsiKeycloakAdapter: 1
jvb: 1
keycloak: 1
mariadb: 1
matrixNeoBoardWidget: 1
matrixNeoChoiceWidget: 1
matrixNeoDateFixBot: 1
matrixNeoDateFixWidget: 1
matrixUserVerificationService: 1
memcached: 1
# clamav-distributed
# -- scalable: true
# -- comment: clamav-distributed - requires `ReadWriteMany` PVCs.
milter: 1
minio: 1
nextcloudApache2: 1
nextcloudExporter: 1
nextcloudPHP: 1
openprojectWeb: 1
openprojectWorker: 1
oxConnector: 1
# -- component: Weboffice (Collabora)
# -- scalable: true
collabora: 1
# -- component: Pad (CryptPad)
# -- scalable: false
cryptpad: 1
# -- component: Groupware (OX AppSuite, OX Dovecot etc.)
# -- scalable: false
# -- comment: Scalable in openDesk Enterprise only
dovecot: 1
# -- scalable: false
postfix: 1
postgres: 1
redis: 1
# -- scalable: true
dkimpy: 1
# -- component: Chat (Element, Synapse)
# -- scalable: true
element: 1
# -- scalable: tbd
matrixNeoBoardWidget: 1
# -- scalable: tbd
matrixNeoChoiceWidget: 1
# -- scalable: tbd
matrixNeoDateFixBot: 1
# -- scalable: tbd
matrixNeoDateFixWidget: 1
# -- scalable: tbd
matrixUserVerificationService: 1
# -- scalable: tbd
synapse: 1
# -- scalable: true
synapseWeb: 1
umsKeycloakExtensionsHandler: 1
umsKeycloakExtensionsProxy: 1
umsLdapNotifier: 1
umsLdapServer: 1
umsNotificationsApi: 1
umsPortalFrontend: 1
umsPortalListener: 1
umsPortalServer: 1
umsSelfserviceListener: 1
umsStackGateway: 1
umsUdmRestApi: 1
umsUmcGateway: 1
umsUmcServer: 1
# -- scalable: true
wellKnown: 1
# -- component: IAM (Nubus)
# -- scalable: true
intercomService: 1
# -- scalable: true
keycloak: 1
# -- scalable: false
# -- comment: Will be removed soon.
oxConnector: 1
# -- scalable: false
# -- comment: Should not be scaled, is an async process.
umsKeycloakExtensionsHandler: 1
# -- scalable: true
umsKeycloakExtensionsProxy: 1
# -- scalable: tbd
umsLdapNotifier: 1
# -- scalable: tbd
umsLdapServer: 1
# -- scalable: tbd
umsNotificationsApi: 1
# -- scalable: true
umsPortalFrontend: 1
# -- scalable: tbd
umsPortalListener: 1
# -- scalable: true
umsPortalServer: 1
# -- scalable: tbd
umsSelfserviceListener: 1
# -- scalable: tbd
umsStackGateway: 1
# -- scalable: true
umsUdmRestApi: 1
# -- scalable: tbd
umsUmcGateway: 1
# -- scalable: tbd
umsUmcServer: 1
# -- component: Video conference (Jitsi)
# -- scalable: tbd
jibri: 1
# -- scalable: tbd
jicofo: 1
# -- scalable: tbd
jitsi: 1
# -- scalable: tbd
jitsiKeycloakAdapter: 1
# -- scalable: tbd
jvb: 1
# -- component: Persistence Layer
# -- scalable: false
mariadb: 1
# -- scalable: false
memcached: 1
# -- scalable: true
minio: 1
# -- scalable: false
postgres: 1
# -- scalable: tbd
redis: 1
# -- component: Filestore (Nextcloud)
# -- scalable: true
nextcloudApache2: 1
# -- scalable: true
nextcloudExporter: 1
# -- scalable: true
nextcloudPHP: 1
# -- component: Project management (OpenProject)
# -- scalable: true
openprojectWeb: 1
# -- scalable: true
# -- comment: Async service working on processing queue content. Can work on queues in parallel (when needed). See [upstream Helm chart documentation](https://www.openproject.org/docs/installation-and-operations/installation/helm-chart/) for details, as e.g. dedicated workers to specific queues are in general possible with OpenProject as well.Share
openprojectWorker: 1
# -- component: Knowledge management (XWiki)
# -- scalable: false
xwiki: 1
...

View File

@@ -25,6 +25,13 @@ resources:
requests:
cpu: 0.1
memory: "512Mi"
dkimpy:
limits:
cpu: 99
memory: "256Mi"
requests:
cpu: 0.1
memory: "128Mi"
dovecot:
limits:
cpu: 99
@@ -579,7 +586,7 @@ resources:
umsUmcServer:
limits:
cpu: 99
memory: "1Gi"
memory: "2Gi"
requests:
cpu: 0.1
memory: "256Mi"

View File

@@ -11,6 +11,7 @@ seLinuxOptions:
clamd: ~
collabora: ~
cryptpad: ~
dkimpy: ~
dovecot: ~
element: ~
freshclam: ~

View File

@@ -9,4 +9,17 @@ smtp:
username: ""
password: {{ env "SMTP_PASSWORD" | quote }}
localpartNoReply: "no-reply"
# For the following settings to have effect `dkimpy.enabled` must be `true`.
dkim:
key:
# DKIM private key as plaintext value.
value: ""
# DKIM private key from existing secret. As a higher precedence than the plain `value`.
secret:
name: ""
key: ""
selector: "rsa"
useED25519: false
...

View File

@@ -35,17 +35,13 @@ ingress:
enabled: true
secretName: "kyverno-tls"
replicas:
# clamav-simple
clamav: 42
# clamav-distributed
clamd: 42
collabora: 42
cryptpad: 42
dovecot: 42
element: 42
# clamav-distributed
freshclam: 42
# clamav-distributed
icap: 42
intercomService: 42
jibri: 42
@@ -61,7 +57,6 @@ replicas:
matrixNeoDateFixWidget: 42
matrixUserVerificationService: 42
memcached: 42
# clamav-distributed
milter: 42
minio: 42
nextcloudApache2: 42