mirror of
https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk.git
synced 2025-12-06 15:31:38 +01:00
Compare commits
11 Commits
uv-jconde/
...
uv-jtorres
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d42a975f7f | ||
|
|
5bc4de68e8 | ||
|
|
b60fe39b5c | ||
|
|
c03566dd63 | ||
|
|
fbe4909a8e | ||
|
|
e1d15e4bc6 | ||
|
|
c63e725525 | ||
|
|
45715a2059 | ||
|
|
3ad81e6b92 | ||
|
|
a395759551 | ||
|
|
8aa1a7fa7d |
@@ -29,14 +29,14 @@ 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/) |
|
||||
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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}
|
||||
```
|
||||
|
||||
@@ -44,9 +44,9 @@ We will provide additional documents regarding user provisioning in the future,
|
||||
- UDM REST API:
|
||||
- Build a provisioning solution by yourself using the [UDM REST API](https://docs.software-univention.de/developer-reference/5.0/en/udm/rest-api.html).
|
||||
- The API gives you full control over the contents of the IAM in order to create, update or delete users and groups.
|
||||
- Directory Connector:
|
||||
- Nubus Directory Importer:
|
||||
- It is based on a Python one-way directory synchronization for users and groups.
|
||||
- We will provide more details on this approach soon one the tool is made publicly available.
|
||||
- Please find more details in the [upstream product's documentation](https://docs.software-univention.de/nubus-kubernetes-operation/latest/en/howto-connect-external-iam.html).
|
||||
- Ad-hoc provisioning (AHP)
|
||||
- This feature is currently not available in the openDesk Keycloak, but there are plans by the Supplier Univention to make it available.
|
||||
- Ad-hoc provisioning creates an user account on the fly during a users first login.
|
||||
|
||||
@@ -9,6 +9,10 @@ SPDX-License-Identifier: Apache-2.0
|
||||
* [Example configuration](#example-configuration)
|
||||
* [Mail domain](#mail-domain)
|
||||
* [Matrix domain](#matrix-domain)
|
||||
* [DNS](#dns)
|
||||
* [Webserver](#webserver)
|
||||
* [Content Security Policy](#content-security-policy)
|
||||
* [.well-known](#well-known)
|
||||
|
||||
# Use case
|
||||
|
||||
@@ -59,7 +63,9 @@ or via environment variable
|
||||
export MATRIX_DOMAIN=my_organization.tld
|
||||
```
|
||||
|
||||
This setup requires also a different DNS setup:
|
||||
### DNS
|
||||
|
||||
The following changes apply to the standard DNS:
|
||||
|
||||
| Record name | Type | Value | Comment |
|
||||
| -------------------------------- | ---- | -------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
@@ -67,6 +73,14 @@ This setup requires also a different DNS setup:
|
||||
|
||||
*Note:* `matrix.opendesk.domain.tld` in the "Value" column can also be the IP address where synapse TLS port is listening to.
|
||||
|
||||
### Webserver
|
||||
|
||||
#### Content Security Policy
|
||||
|
||||
The webserver of `my_organization.tld` should add `*.opendesk.domain.tld` to its CSP header.
|
||||
|
||||
#### .well-known
|
||||
|
||||
If you want to use other Matrix clients,
|
||||
e.g., Element Messenger for [iOS](https://apps.apple.com/de/app/element-messenger/id1083446067)
|
||||
or [Android](https://play.google.com/store/apps/details?id=im.vector.app),
|
||||
@@ -82,4 +96,4 @@ you need to create a JSON file with the following contents that is served from
|
||||
```
|
||||
|
||||
This ensures clients know where to find the Matrix protocol endpoint when users specify `my_organization.tld`
|
||||
as their homeserver.
|
||||
as their homeserver.
|
||||
|
||||
@@ -52,7 +52,7 @@ files.
|
||||
> All configuration options and their default values can be found in files at `helmfile/environments/default/`
|
||||
|
||||
For the following guide, we will use `dev` as environment, where variables can be set in
|
||||
`helmfile/environments/dev/values.yaml`.
|
||||
`helmfile/environments/dev/values.yaml.gotmpl`.
|
||||
|
||||
## DNS
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -115,13 +115,13 @@ All available apps and their default value can be found in `helmfile/environment
|
||||
| Memcached | `memcached.enabled` | `true` | Cache Database |
|
||||
| MinIO | `minio.enabled` | `true` | Object Storage |
|
||||
| Nextcloud | `nextcloud.enabled` | `true` | File share |
|
||||
| Nubus | `nubus.enabled` | `true` | Identity Management & Portal |
|
||||
| OpenProject | `openproject.enabled` | `true` | Project management |
|
||||
| OX Appsuite | `oxAppsuite.enabled` | `true` | Groupware |
|
||||
| Provisioning | `oxConnector.enabled` | `true` | Backend provisioning |
|
||||
| Postfix | `postfix.enabled` | `true` | MTA |
|
||||
| PostgreSQL | `postgresql.enabled` | `true` | Database |
|
||||
| Redis | `redis.enabled` | `true` | Cache Database |
|
||||
| Nubus | `nubus.enabled` | `true` | Identity Management & Portal |
|
||||
| XWiki | `xwiki.enabled` | `true` | Knowledge management |
|
||||
|
||||
Exemplary, Jitsi can be disabled like:
|
||||
@@ -199,18 +199,27 @@ cluster:
|
||||
- "127.0.0.0/8"
|
||||
```
|
||||
|
||||
If your load balancer / reverse proxy IPs are not already covered by the above `cidr` you need to
|
||||
explicitly configure the related IPs or IP ranges:
|
||||
|
||||
```yaml
|
||||
cluster:
|
||||
networking:
|
||||
incomingCIDR:
|
||||
- "172.16.0.0/12"
|
||||
```
|
||||
|
||||
### Ingress
|
||||
|
||||
By default, the `ingressClassName` is empty to choose your default ingress controller, you may want to customize it by
|
||||
setting:
|
||||
By default, the `ingressClassName` is empty to choose your default ingress controller. You may want to customize it by
|
||||
setting the following attribute to the name of the currently only supported ingress controller `ingress-nginx` (see
|
||||
[requirements.md](./requirements.md)) for reference) within your deployment if that is not the clusters default ingress.
|
||||
|
||||
```yaml
|
||||
ingress:
|
||||
ingressClassName: "cilium"
|
||||
ingressClassName: "name-of-my-nginx-ingress"
|
||||
```
|
||||
|
||||
**Note:** Please check the [requirements.md](./requirements.md) for the supported Ingress controllers.
|
||||
|
||||
### Container runtime
|
||||
|
||||
Some apps require specific configuration for the container runtime. You can set your container runtime like `cri-o`,
|
||||
@@ -254,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
|
||||
@@ -279,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
|
||||
|
||||
@@ -6,14 +6,17 @@ SPDX-License-Identifier: Apache-2.0
|
||||
<h1>Upgrade migrations</h1>
|
||||
|
||||
* [Disclaimer](#disclaimer)
|
||||
* [From v0.9.0](#from-v090)
|
||||
* [Automated migrations](#automated-migrations)
|
||||
* [Updated IAM component Nubus](#updated-iam-component-nubus)
|
||||
* [Manual cleanup](#manual-cleanup)
|
||||
* [From v0.8.1](#from-v081)
|
||||
* [Updated `cluster.networking.cidr`](#updated-clusternetworkingcidr)
|
||||
* [Updated customizable template attributes](#updated-customizable-template-attributes)
|
||||
* [`migrations` S3 bucket](#migrations-s3-bucket)
|
||||
* [Releases upgrades](#releases-upgrades)
|
||||
* [From v0.9.0](#from-v090)
|
||||
* [Automated migrations](#automated-migrations)
|
||||
* [Updated IAM component Nubus](#updated-iam-component-nubus)
|
||||
* [Manual cleanup](#manual-cleanup)
|
||||
* [From v0.8.1](#from-v081)
|
||||
* [Updated `cluster.networking.cidr`](#updated-clusternetworkingcidr)
|
||||
* [Updated customizable template attributes](#updated-customizable-template-attributes)
|
||||
* [`migrations` S3 bucket](#migrations-s3-bucket)
|
||||
* [Related components and artefacts](#related-components-and-artefacts)
|
||||
* [Development](#development)
|
||||
|
||||
# Disclaimer
|
||||
|
||||
@@ -24,14 +27,16 @@ Though we try to ease the pain when it comes to 0.x upgrades. That is what this
|
||||
Limitations:
|
||||
- We assume that the PV reclaim policy is set to `delete`, so expect that PVs get deleted as soon as the related PVC was deleted and will cover an explicit delete for PVs.
|
||||
|
||||
# From v0.9.0
|
||||
# Releases upgrades
|
||||
|
||||
## Automated migrations
|
||||
## From v0.9.0
|
||||
|
||||
### Updated IAM component Nubus
|
||||
### Automated migrations
|
||||
|
||||
openDesk is integrating the latest [Nubus](https://www.univention.de/produkte/nubus/) development from Univention. The new 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
|
||||
#### 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:
|
||||
- Delete service `ums-keycloak`, as it will be recreated headless.
|
||||
@@ -40,7 +45,7 @@ upgrade migrations executes the following steps
|
||||
- Stage POST:
|
||||
- Restart Keycloak.
|
||||
|
||||
#### Manual cleanup
|
||||
##### Manual cleanup
|
||||
|
||||
Currently we do not execute possible cleanup steps as part of the migrations POST stage. So you might want to remove the no longer used PVCs after successful upgrade:
|
||||
```
|
||||
@@ -49,14 +54,14 @@ kubectl -n ${NAMESPACE} delete pvc shared-data-ums-ldap-server-0
|
||||
kubectl -n ${NAMESPACE} delete pvc shared-run-ums-ldap-server-0
|
||||
```
|
||||
|
||||
# From v0.8.1
|
||||
## From v0.8.1
|
||||
|
||||
## Updated `cluster.networking.cidr`
|
||||
### Updated `cluster.networking.cidr`
|
||||
|
||||
- Action: `cluster.networking.cidr` is now an array (was a string until 0.8.1), please update your setup accordingly if you explicitly set this value.
|
||||
- Reference:[cluster.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/cluster.yaml)
|
||||
|
||||
## Updated customizable template attributes
|
||||
### Updated customizable template attributes
|
||||
|
||||
- Action: Please ensure you update you custom deployment values according with the updated default value structure.
|
||||
- References:
|
||||
@@ -65,7 +70,28 @@ kubectl -n ${NAMESPACE} delete pvc shared-run-ums-ldap-server-0
|
||||
- `monitoring.` prefix for `prometheus.*` and `graphana.*`, see [monitoring.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/monitoring.yaml).
|
||||
- `smtp.` prefix for `localpartNoReply`, see [smtp.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/smtp.yaml).
|
||||
|
||||
## `migrations` S3 bucket
|
||||
### `migrations` S3 bucket
|
||||
|
||||
- Action: For self managed/external S3/object storages, please ensure you add a bucket `migrations` to your S3.
|
||||
- Reference: `objectstores.migrations` in [objectstores.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/objectstores.yaml)
|
||||
|
||||
# Related components and artefacts
|
||||
|
||||
openDesk comes with two upgrade steps as part of the deployment, they can be found in the folder [/helmfile/apps](../helmfile/apps/) as all other components:
|
||||
|
||||
- `migrations-pre`: Is the very first app that gets deployed.
|
||||
- `migrations-post`: Is the last app that gets deployed.
|
||||
|
||||
Both migrations have to be deployed exclusively at their first/last position and not in parallel with other components.
|
||||
|
||||
The status of the upgrade migrations is tracked in the ConfigMap `migrations-status`, more details can be found in the [README.md of the related container image](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-migrations/README.md).
|
||||
|
||||
## Development
|
||||
|
||||
When a new upgrade migration is required, ensure to address the following list:
|
||||
|
||||
- Update the generated release version file [`global.generated.yaml`](../helmfile/environments/default/global.generated.yaml) at least on the patch level to test the upgrade in your feature branch as well as trigger it in the `develop` branch after the feature branch was merged. The set value gets overwritten during the release process with the release's actual version number.
|
||||
- You have to implement the migration logic as a runner script in the [`opendesk-migrations`](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-migrations) image. Please find more instructions in the linked repository.
|
||||
- You most likely have to update the [`opendesk-migrations` Helm chart](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-migrations) within the `rules` section of the [`role.yaml`](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-migrations/-/blob/main/charts/opendesk-migrations/templates/role.yaml) to provide the permissions required for the execution of your migration's logic.
|
||||
- You have to set the runner's ID you want to execute in the [migrations.yaml.gotmpl](../helmfile/shared/migrations.yaml.gotmpl). See also the `migrations.*` section of [the Helm chart's README.md](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-migrations/-/blob/main/charts/opendesk-migrations/README.md).
|
||||
- Update the [`charts.yaml`](../helmfile/environments/default/charts.yaml) and [`images.yaml`](../helmfile/environments/default/images.yaml) to reflect the newer releases of the `opendesk-migrations` Helm chart and container image.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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/)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -37,7 +37,7 @@ configuration:
|
||||
port: {{ .Values.cache.nextcloud.port | quote }}
|
||||
collabora:
|
||||
# internalWopiUrl: ""
|
||||
wopiAllowlist: {{ join " " .Values.cluster.networking.cidr | quote }}
|
||||
wopiAllowlist: {{ join ", " ( concat .Values.cluster.networking.cidr .Values.cluster.networking.incomingCIDR ) | quote }}
|
||||
database:
|
||||
host: {{ .Values.databases.nextcloud.host | quote }}
|
||||
port: {{ .Values.databases.nextcloud.port | quote }}
|
||||
@@ -75,14 +75,17 @@ configuration:
|
||||
value: {{ .Values.secrets.centralnavigation.apiKey | quote }}
|
||||
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:
|
||||
|
||||
@@ -83,7 +83,7 @@ keycloak:
|
||||
|
||||
nubusGuardian:
|
||||
provisioning:
|
||||
enabled: true
|
||||
enabled: false
|
||||
config:
|
||||
keycloak:
|
||||
credentialSecret:
|
||||
@@ -152,10 +152,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 +166,7 @@ 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 }}"
|
||||
|
||||
nubusPortalListener:
|
||||
portalListener:
|
||||
@@ -213,6 +216,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 +230,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 }}
|
||||
@@ -309,7 +319,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 +330,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: ""
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 }}
|
||||
@@ -42,8 +43,7 @@ config:
|
||||
# We use client specific scopes as we bind them to Keycloak role membership which itself is linked
|
||||
# to LDAP group membership to ensure a user cannot access an application without the required
|
||||
# group membership.
|
||||
# ToDo:
|
||||
# - Jitsi does currently not care if it gets scopes/claims as long as the user is authenticated.
|
||||
# ToDo: Ensure all applications verify the token's signature to ensure it is not tampered.
|
||||
clientScopes:
|
||||
- name: "read_contacts"
|
||||
protocol: "openid-connect"
|
||||
@@ -571,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
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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 }}/"
|
||||
|
||||
@@ -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 }}"
|
||||
|
||||
44
helmfile/apps/services/values-dkimpy.yaml.gotmpl
Normal file
44
helmfile/apps/services/values-dkimpy.yaml.gotmpl
Normal 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 }}
|
||||
...
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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 }}"
|
||||
|
||||
@@ -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"
|
||||
@@ -120,7 +132,7 @@ charts:
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/platform-development/charts/opendesk-jitsi"
|
||||
name: "opendesk-jitsi"
|
||||
version: "1.7.9"
|
||||
version: "1.9.2"
|
||||
verify: true
|
||||
mariadb:
|
||||
# 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"
|
||||
@@ -254,7 +266,7 @@ charts:
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus-dev/charts"
|
||||
name: "nubus"
|
||||
version: "0.33.1-pre-jconde-menu-patches"
|
||||
version: "0.40.0-pre-jtorres-create-readonly-user"
|
||||
verify: true
|
||||
opendeskKeycloakBootstrap:
|
||||
# providerCategory: "Platform"
|
||||
@@ -340,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"
|
||||
@@ -350,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"
|
||||
@@ -370,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"
|
||||
@@ -380,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"
|
||||
@@ -390,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"
|
||||
|
||||
@@ -18,11 +18,14 @@ cluster:
|
||||
# Kubernetes cluster network CIDRs.
|
||||
cidr:
|
||||
- "10.0.0.0/8"
|
||||
# IP addresses or IP ranges of the reverse proxy / load balancer to restrict the requesting source
|
||||
# for defined services.
|
||||
incomingCIDR: []
|
||||
# Ingress-gateway IP - only relevant for "NodePort" cluster services.
|
||||
# When ingress and egress gateway use different ips, which results that pods can't self-discover their incoming ip,
|
||||
# you need to provide the public (load-balanced) ingress gateways ip address.
|
||||
ingressGatewayIP: ""
|
||||
# LoadBalancer status fiel - only relevant for "LoadBalancer" cluster services.
|
||||
# LoadBalancer status field - only relevant for "LoadBalancer" cluster services.
|
||||
# The IP/DNS of your load-balancer will be fetched for some components from 'status' map of services.
|
||||
# Most providers use '.status.loadBalancer.ingress[0].ip' to store public ip. You can modify the chosen field here.
|
||||
loadBalancerStatusField: "ip"
|
||||
|
||||
@@ -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: ~
|
||||
...
|
||||
|
||||
@@ -30,11 +30,6 @@ 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
|
||||
@@ -50,11 +45,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
|
||||
|
||||
|
||||
...
|
||||
|
||||
@@ -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"
|
||||
@@ -113,7 +121,7 @@ images:
|
||||
# upstreamMirrorStartFrom: ["2023", "12", "14"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/nordeck/images-mirror/jitsi-keycloak-adapter"
|
||||
tag: "v20240314@sha256:8abe8209a59c2d646fa3e7136f6a6ea15f3f692106bba92c0e777f8d383edc12"
|
||||
tag: "v20240808@sha256:73db5ae9bb617d076b6a877500dbeece38fd15f8ae933ffadbd72d9aa82ad8da"
|
||||
jitsiPatchJVB:
|
||||
# providerCategory: "Community"
|
||||
# providerResponsible: "Nordeck"
|
||||
@@ -195,9 +203,11 @@ images:
|
||||
# providerResponsible: "openDesk"
|
||||
# upstreamRegistry: "https://registry-1.docker.io"
|
||||
# upstreamRepository: "bitnami/memcached"
|
||||
registry: "registry-1.docker.io"
|
||||
# registry: "registry-1.docker.io"
|
||||
# repository: "bitnami/memcached"
|
||||
registry: "docker.io"
|
||||
repository: "bitnami/memcached"
|
||||
tag: "1.6.21-debian-11-r107@sha256:247ec29efd6030960047a623aef025021154662edf6b6d6e88c97936f164d99d"
|
||||
tag: "1.6.29-debian-12-r4"
|
||||
migrations:
|
||||
# providerCategory: "Platform"
|
||||
# providerResponsible: "openDesk"
|
||||
@@ -205,7 +215,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"
|
||||
@@ -266,8 +276,8 @@ images:
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/data-loader"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/data-loader"
|
||||
tag: "0.60.1@sha256:fc658d98f3611bbc793eecdab4f4668d4648f45047d60c92bde9ee642568f701"
|
||||
repository: "nubus-dev/images/data-loader"
|
||||
tag: "0.63.0-pre-jtorres-create-readonly-user-nubus@sha256:82947d98b5c04b9ffa0093429dc33b0f94c602f08b6e595eb1ca28bb4dd160b7"
|
||||
nubusGuardianAuthorizationApi:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -305,9 +315,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/guardian-init"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "3", "0"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/guardian-init"
|
||||
tag: "0.9.1@sha256:6006fb1c2779b906e7725df524f2587b2a610cc442793bf8f16b2b4b8c0494fb"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/guardian-init"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/guardian-init"
|
||||
tag: "0.11.0@sha256:c691aecaf2074a9f1cc6ec5277a70792642bd677f0ff58a6278041b2d99c9d51"
|
||||
nubusKeycloak:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -325,9 +337,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/keycloak-bootstrap"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "1", "0"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-bootstrap"
|
||||
tag: "0.1.0@sha256:351097e9e7b469f2fc149fe612ec6ad515d5e6b081d7e2785bd926a1d77209d2"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-bootstrap"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/keycloak-bootstrap"
|
||||
tag: "0.1.2"
|
||||
nubusKeycloakExtensionHandler:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -335,9 +349,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/keycloak-handler"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "0", "3"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-handler"
|
||||
tag: "0.9.4@sha256:247182a965cc56fe2a891d42a7cfe84205804a9e58dd8f0a8191726a68cb9db1"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-handler"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/keycloak-handler"
|
||||
tag: "0.10.0@sha256:7aa5bac4821c9226fd74c6a2883f7c24d214b4610d516574866cf933ee1be080"
|
||||
nubusKeycloakExtensionProxy:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -345,9 +361,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/keycloak-proxy"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "0", "3"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-proxy"
|
||||
tag: "0.9.4@sha256:a572fe076a2ef5966433fec478c92cffade816e71f2b4661bd8dbcb9e60c8c2f"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/keycloak-proxy"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/keycloak-proxy"
|
||||
tag: "0.10.0@sha256:a5f6ae65732f7fb9d7ceae11f1c412b109d230e197075d8a8e1d989c87a0309d"
|
||||
nubusLdapNotifier:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -355,9 +373,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/ldap-notifier"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "8", "2"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-notifier"
|
||||
tag: "0.15.2@sha256:1f2a9d2136c8e87a4c4a59a94a2235d00e969c98bd7bfe75707a299918f271b5"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-notifier"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/ldap-notifier"
|
||||
tag: "0.20.0@sha256:d891fe11075740ff0fe1694b2c5fb72c43ac6d823904af8593e0ab359b9175e0"
|
||||
nubusLdapServer:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -366,8 +386,8 @@ images:
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "8", "2"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ldap-server"
|
||||
tag: "0.17.1@sha256:5b7b629b9655c7bb2857013f3399cefe5bdd3963d568bbf77d6d488c005e3b3b"
|
||||
repository: "bmi/opendesk/components/platform-development/images/temp-nubus-ldap-2.5-upgrade"
|
||||
tag: "1.1.20@sha256:90f46b8817fa05e6e3ac3b2f053911198675805fb82db8240bfa41239d7e7c61"
|
||||
nubusLdapServerDhInitContainer:
|
||||
# providerCategory: 'Community'
|
||||
# providerResponsible: 'Univention'
|
||||
@@ -407,9 +427,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/notifications-api"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "9", "4"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/notifications-api"
|
||||
tag: "0.27.0@sha256:d99173199f20c701b29b8a3c1a46465085a873b37f413882e7d2e106e258c35a"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/notifications-api"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/notifications-api"
|
||||
tag: "0.33.0@sha256:0ddb81d4789b2f43b55ded46ff88db4b99a68e7b1006e35877f582aac875c9ad"
|
||||
nubusOpenPolicyAgent:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -427,9 +449,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/ox-extension"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "10", "0"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-extension"
|
||||
tag: "0.10.0@sha256:f6f32ce0486594eca9c8682b10f60e9d174a526d5acd2ba4d0abcb8f522539b9"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/ox-extension"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/ox-extension"
|
||||
tag: "0.11.0"
|
||||
nubusPortalConsumer:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -447,9 +471,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/portal-extension"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "28", "0"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-extension"
|
||||
tag: "0.28.0@sha256:1ec467bebc402265e1c24b3d441c211faad1a025ded41afe8dd4687b7ad5a9a4"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-extension"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/portal-extension"
|
||||
tag: "0.28.0"
|
||||
nubusPortalFrontend:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -457,9 +483,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/portal-frontend"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "9", "4"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-frontend"
|
||||
tag: "0.29.0@sha256:3af3d5d24f690557b4a644d5720113dca0c802465b0e43466b49db27acd37939"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-frontend"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/portal-frontend"
|
||||
tag: "0.33.0@sha256:9cce16009cc478ece11704521347fc4938a3ac5ee4570ac439dd50b08452a3ff"
|
||||
nubusPortalListener:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -477,9 +505,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/portal-server"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "9", "4"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-server"
|
||||
tag: "0.27.0@sha256:e1ad659feb4a1948d07e6e7d99b94b6bdbd4525d96f4cf9a010b75189f0082fc"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/portal-server"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus-dev/images/portal-server"
|
||||
tag: "0.33.1@sha256:82e9002786a9d1ec524c0f386838ac4ee1fa9a581b66d2e353ea57cc01e26a95"
|
||||
nubusProvisioningDispatcher:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -497,9 +527,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/provisioning-events-and-consumer-api"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# 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"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-events-and-consumer-api"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/provisioning-events-and-consumer-api"
|
||||
tag: "0.36.0@sha256:69dd2946e7b05384304eeeca50dea645d20f7658d225e7c532381c3bdf2027ce"
|
||||
nubusProvisioningPrefill:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -507,9 +539,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/provisioning-prefill"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# upstreamMirrorStartFrom: ["0", "14", "0"]
|
||||
registry: "registry.opencode.de"
|
||||
repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-prefill"
|
||||
tag: "0.28.3@sha256:a98bce46144a6ff943b0432b66277393b7b476b8969b221b9069c708d3380f5d"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-prefill"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/provisioning-prefill"
|
||||
tag: "0.36.0@sha256:147406648848c068aacc2cb467633d51c65cddbcaa622c352e5fe5349bf92ce6"
|
||||
nubusProvisioningUdmListener:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -517,9 +551,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/provisioning-udm-listener"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# 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"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-listener"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/provisioning-udm-listener"
|
||||
tag: "0.36.0@sha256:8a960db9ff94b3c8a63be1588e47ccc1f62f3071abdce7ee2ef89afbe2674eed"
|
||||
nubusProvisioningUdmTransformer:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -527,9 +563,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/provisioning-udm-transformer"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# 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"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/provisioning-udm-transformer"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/provisioning-udm-transformer"
|
||||
tag: "0.36.0@sha256:8080b55e705391aa2ac9b11db11dc1f984b5626271b2f175bfe26967b857b06d"
|
||||
nubusSelfserviceInvitation:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -565,9 +603,11 @@ images:
|
||||
# upstreamRepository: "nubus/images/udm-rest-api"
|
||||
# upstreamMirrorTagFilterRegEx: '^(\d+)\.(\d+)\.(\d+)$'
|
||||
# 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"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/udm-rest-api"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/udm-rest-api"
|
||||
tag: "0.21.0@sha256:f3d189dd0ca619778c907569ddedbdf8772fba26f26cf9e6b8cde2a62618da63"
|
||||
nubusUmcGateway:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -575,9 +615,11 @@ images:
|
||||
# upstreamRepository: "nubus/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"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-gateway"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/umc-gateway"
|
||||
tag: "0.27.0@sha256:f0d5831061d9e8c9a47e724d00eeb8902b08f2380d4ca298812e9c1870ff4697"
|
||||
nubusUmcServer:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -585,9 +627,11 @@ images:
|
||||
# upstreamRepository: "nubus/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"
|
||||
# registry: "registry.opencode.de"
|
||||
# repository: "bmi/opendesk/components/supplier/univention/images-mirror/umc-server"
|
||||
registry: "artifacts.software-univention.de"
|
||||
repository: "nubus/images/umc-server"
|
||||
tag: "0.27.0@sha256:fa552aa595f75d54b216af4390bd5ea3d5385e6a9a5f558804da3aae9f700acf"
|
||||
nubusWaitForDependency:
|
||||
# providerCategory: "Supplier"
|
||||
# providerResponsible: "Univention"
|
||||
@@ -615,7 +659,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"
|
||||
@@ -767,7 +811,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"
|
||||
|
||||
@@ -19,6 +19,9 @@ collabora:
|
||||
cryptpad:
|
||||
enabled: true
|
||||
namespace: ~
|
||||
dkimpy:
|
||||
enabled: false
|
||||
namespace: ~
|
||||
dovecot:
|
||||
enabled: true
|
||||
namespace: ~
|
||||
|
||||
@@ -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: tdb
|
||||
# -- comment: Async process that usually has no need for scaling
|
||||
openprojectWorker: 1
|
||||
|
||||
# -- component: Knowledge management (XWiki)
|
||||
# -- scalable: false
|
||||
xwiki: 1
|
||||
...
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -11,6 +11,7 @@ seLinuxOptions:
|
||||
clamd: ~
|
||||
collabora: ~
|
||||
cryptpad: ~
|
||||
dkimpy: ~
|
||||
dovecot: ~
|
||||
element: ~
|
||||
freshclam: ~
|
||||
|
||||
@@ -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
|
||||
...
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user