mirror of
https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk.git
synced 2025-12-06 15:31:38 +01:00
Compare commits
33 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f94e9c4930 | ||
|
|
5f9d015f0b | ||
|
|
7cc39647d8 | ||
|
|
8c97bcf994 | ||
|
|
5a39e8725b | ||
|
|
34d2c05959 | ||
|
|
42f63e3992 | ||
|
|
81105d1e94 | ||
|
|
a41ddd5451 | ||
|
|
8e889db63e | ||
|
|
5ebf291a4d | ||
|
|
d565c057dd | ||
|
|
50e263866b | ||
|
|
0fd4a26c71 | ||
|
|
0aa4cfb46f | ||
|
|
391d959630 | ||
|
|
9c32058fcc | ||
|
|
bc18724d70 | ||
|
|
011ad2cd6b | ||
|
|
ee99eefb72 | ||
|
|
a2b333b462 | ||
|
|
7ee9e47e82 | ||
|
|
d677ca5691 | ||
|
|
31e5cf317c | ||
|
|
410a023714 | ||
|
|
8b065fd9d7 | ||
|
|
f4b8226ea1 | ||
|
|
2023d5bce4 | ||
|
|
8807b24ce0 | ||
|
|
d4442261aa | ||
|
|
2efceef076 | ||
|
|
7ec123b9a1 | ||
|
|
3d31127a6a |
@@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
include:
|
include:
|
||||||
@@ -11,6 +12,7 @@ include:
|
|||||||
- local: "/.gitlab/generate/generate-docs.yml"
|
- local: "/.gitlab/generate/generate-docs.yml"
|
||||||
- project: "${PROJECT_PATH_CUSTOM_ENVIRONMENT_CONFIG}"
|
- project: "${PROJECT_PATH_CUSTOM_ENVIRONMENT_CONFIG}"
|
||||||
file: "gitlab/environments.yaml"
|
file: "gitlab/environments.yaml"
|
||||||
|
ref: "main"
|
||||||
- local: "/.gitlab/lint/lint-opendesk.yml"
|
- local: "/.gitlab/lint/lint-opendesk.yml"
|
||||||
rules:
|
rules:
|
||||||
- if: "$JOB_OPENDESK_LINTER_ENABLED == 'false' || $CI_PIPELINE_SOURCE =~ 'tags|merge_request_event'"
|
- if: "$JOB_OPENDESK_LINTER_ENABLED == 'false' || $CI_PIPELINE_SOURCE =~ 'tags|merge_request_event'"
|
||||||
@@ -18,7 +20,7 @@ include:
|
|||||||
- when: "always"
|
- when: "always"
|
||||||
- local: "/.gitlab/lint/lint-kyverno.yml"
|
- local: "/.gitlab/lint/lint-kyverno.yml"
|
||||||
rules:
|
rules:
|
||||||
- if: "$JOB_KYVERNO_LINTER_ENABLED == 'false' || $CI_PIPELINE_SOURCE =~ 'tags|merge_request_event'"
|
- if: "$JOB_KYVERNO_LINTER_ENABLED == 'false' || $CI_PIPELINE_SOURCE =~ 'tags|merge_request_event|web|triggers'"
|
||||||
when: "never"
|
when: "never"
|
||||||
- when: "always"
|
- when: "always"
|
||||||
|
|
||||||
@@ -34,7 +36,6 @@ stages:
|
|||||||
- "component-deploy-stage-2"
|
- "component-deploy-stage-2"
|
||||||
- "tests"
|
- "tests"
|
||||||
- "env-stop"
|
- "env-stop"
|
||||||
- "generate-release-assets"
|
|
||||||
- ".post"
|
- ".post"
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
@@ -42,14 +43,15 @@ variables:
|
|||||||
description: "The name of namespaces to deploy to."
|
description: "The name of namespaces to deploy to."
|
||||||
value: ""
|
value: ""
|
||||||
CLUSTER:
|
CLUSTER:
|
||||||
description: "Define which cluster to use. Cluster must be defined in gitlab/environments.yaml of
|
description: "Which cluster to use. Cluster must be defined in `gitlab/environments.yaml` of the
|
||||||
sovereign-workplace-env included above."
|
repo that is included above using the env var `PROJECT_PATH_CUSTOM_ENVIRONMENT_CONFIG`:
|
||||||
|
${PROJECT_PATH_CUSTOM_ENVIRONMENT_CONFIG}"
|
||||||
value: "dev"
|
value: "dev"
|
||||||
MASTER_PASSWORD_WEB_VAR:
|
MASTER_PASSWORD_WEB_VAR:
|
||||||
description: "Optional: Provide a passphrase to be used for password generation."
|
description: "Optional: Provide a seed to be used for generation of all internal secrets. Same seed will result in same secrets."
|
||||||
value: ""
|
value: ""
|
||||||
ENV_STOP_BEFORE:
|
ENV_STOP_BEFORE:
|
||||||
description: "Stop environment/delete namespace for the deployment"
|
description: "Stop environment/delete namespace for the deployment."
|
||||||
value: "no"
|
value: "no"
|
||||||
options:
|
options:
|
||||||
- "yes"
|
- "yes"
|
||||||
@@ -452,7 +454,7 @@ avscan-prepare:
|
|||||||
$CI_PIPELINE_SOURCE =~ "push|merge_request_event"
|
$CI_PIPELINE_SOURCE =~ "push|merge_request_event"
|
||||||
when: "always"
|
when: "always"
|
||||||
- when: "never"
|
- when: "never"
|
||||||
image: "external-registry.souvap-univention.de/docker-remote/mikefarah/yq"
|
image: "${CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX}/mikefarah/yq"
|
||||||
script:
|
script:
|
||||||
- |
|
- |
|
||||||
cat << 'EOF' > dynamic-scans.yml
|
cat << 'EOF' > dynamic-scans.yml
|
||||||
@@ -508,34 +510,6 @@ avscan-start:
|
|||||||
job: "avscan-prepare"
|
job: "avscan-prepare"
|
||||||
strategy: "depend"
|
strategy: "depend"
|
||||||
|
|
||||||
generate-release-assets:
|
|
||||||
stage: "generate-release-assets"
|
|
||||||
image: "registry.souvap-univention.de/souvap/tooling/images/ansible:4.10.0"
|
|
||||||
rules:
|
|
||||||
- if: >
|
|
||||||
$JOB_AVSCAN_ENABLED != 'false' &&
|
|
||||||
$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH &&
|
|
||||||
$CI_PIPELINE_SOURCE =~ "push|merge_request_event"
|
|
||||||
when: "on_success"
|
|
||||||
- when: "never"
|
|
||||||
script:
|
|
||||||
- |
|
|
||||||
git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@${CI_SERVER_HOST}/${ASSET_GENERATOR_REPO_PATH}
|
|
||||||
cd opendesk-asset-generator
|
|
||||||
export OPENDESK_DEPLOYMENT_AUTOMATION_PATH=${CI_PROJECT_DIR}
|
|
||||||
./opendesk_asset_generator.py
|
|
||||||
mv ./build_artefacts ${CI_PROJECT_DIR}
|
|
||||||
cd ..
|
|
||||||
rm -rf opendesk-asset-generator
|
|
||||||
ls -l ./build_artefacts
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- "./build_artefacts/chart-index.json"
|
|
||||||
- "./build_artefacts/image-index.json"
|
|
||||||
tags: []
|
|
||||||
variables:
|
|
||||||
ASSET_GENERATOR_REPO_PATH: "bmi/opendesk/tooling/opendesk-asset-generator"
|
|
||||||
|
|
||||||
# Declare .environments which is in environments repository. In case it is not available
|
# Declare .environments which is in environments repository. In case it is not available
|
||||||
# 'cache' is used because job must contain at least one key, so cache is just a dummy key.
|
# 'cache' is used because job must contain at least one key, so cache is just a dummy key.
|
||||||
.environments:
|
.environments:
|
||||||
@@ -574,8 +548,6 @@ generate-release-version:
|
|||||||
when: "on_success"
|
when: "on_success"
|
||||||
|
|
||||||
release:
|
release:
|
||||||
dependencies:
|
|
||||||
- "generate-release-assets"
|
|
||||||
rules:
|
rules:
|
||||||
- if: >
|
- if: >
|
||||||
$JOB_AVSCAN_ENABLED != 'false' &&
|
$JOB_AVSCAN_ENABLED != 'false' &&
|
||||||
@@ -596,7 +568,7 @@ release:
|
|||||||
- |
|
- |
|
||||||
echo -e "\n[INFO] Writing data to helm value file..."
|
echo -e "\n[INFO] Writing data to helm value file..."
|
||||||
cat <<EOF >helmfile/environments/default/global.generated.yaml
|
cat <<EOF >helmfile/environments/default/global.generated.yaml
|
||||||
# SPDX-FileCopyrightText: 2024 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
global:
|
global:
|
||||||
@@ -609,16 +581,7 @@ release:
|
|||||||
{
|
{
|
||||||
"branches": ["main"],
|
"branches": ["main"],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
["@semantic-release/gitlab",
|
"@semantic-release/gitlab",
|
||||||
{
|
|
||||||
"assets": [
|
|
||||||
{ "path": "./build_artefacts/chart-index.json",
|
|
||||||
"label": "Chart Index JSON" },
|
|
||||||
{ "path": "./build_artefacts/image-index.json",
|
|
||||||
"label": "Image Index JSON" },
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"@semantic-release/release-notes-generator",
|
"@semantic-release/release-notes-generator",
|
||||||
"@semantic-release/changelog",
|
"@semantic-release/changelog",
|
||||||
["@semantic-release/git", {
|
["@semantic-release/git", {
|
||||||
@@ -637,6 +600,5 @@ release:
|
|||||||
EOF
|
EOF
|
||||||
- "semantic-release"
|
- "semantic-release"
|
||||||
needs:
|
needs:
|
||||||
- "generate-release-assets"
|
|
||||||
- "generate-docs"
|
- "generate-docs"
|
||||||
...
|
...
|
||||||
|
|||||||
47
CHANGELOG.md
47
CHANGELOG.md
@@ -1,3 +1,50 @@
|
|||||||
|
## [0.5.81](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.5.80...v0.5.81) (2024-03-28)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **docs:** Various updates ([50e2638](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/50e263866be8b51ef295ebf8025c3117821a2b6c))
|
||||||
|
* **element:** Update Element Web to v1.11.59 with widget sync fix and NeoBoard v1.14.0 ([0fd4a26](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/0fd4a26c711fb345b79cdff1c775d7ef20335768))
|
||||||
|
* **helmfile:** Fix OpenAPI validations for Kubernetes v1.28 ([0aa4cfb](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/0aa4cfb46f793369a472a736b28eea834a545439))
|
||||||
|
* **nextcloud:** Bump to 28.0.3 ([34d2c05](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/34d2c059596466f8f7d6d09c2855c595391a7e0d))
|
||||||
|
* **nextcloud:** Rename default shared folder to `__Shared_with_me__` ([5f9d015](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/5f9d015f0b98579d652fd4172e74835ed67ccf11))
|
||||||
|
* **open-xchange:** Bump to 8.22 ([5ebf291](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/5ebf291a4dbe88a09c0afe2befa6140ad33bf30b))
|
||||||
|
* **openproject:** Bump OpenProject to 13.4.0 ([d565c05](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d565c057ddb7b348f7a829e0f931b1ea448b454b))
|
||||||
|
* **openproject:** Bump version to 13.4.1 ([7cc3964](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7cc39647d89538630bac9caa158c47b5cb8d2c45))
|
||||||
|
* **services:** Update Otterize Policies ([42f63e3](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/42f63e399230495c83f934e07beb9fc950ef5e29))
|
||||||
|
* **univention-management-stack:** Add missing authenticator secret mount to portal-server ([5a39e87](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/5a39e8725b6454591f552f87f12535201e52df7c))
|
||||||
|
* **univention-management-stack:** Update LDAP server for BSI base security compliance ([8e889db](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/8e889db63eaf05b24cc23838545f63d969232c65))
|
||||||
|
* **univention-management-stack:** Update ldap-notifier and ldap-server ([a41ddd5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/a41ddd5451a9fbd3c6319827fee3eaffbd931271))
|
||||||
|
* **univention-management-stack:** Update provisioning charts, images and helm value to add authentication ([8c97bcf](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/8c97bcf994487281ae94e6d66c73f4a11c08a0be))
|
||||||
|
|
||||||
|
## [0.5.80](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.5.79...v0.5.80) (2024-03-11)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **ci:** Remove creation of release artefacts, use the `images.yaml` and `charts.yaml` in `./helmfile/environments/default` for information about the artefacts instead. ([ee99eef](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/ee99eefb72d3207866ffd1b3bd21a36bd55ad288))
|
||||||
|
* **collabora:** Bump image to 23.05.9.4.1 ([9c32058](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9c32058fcc21a14e9e66a46064ea044402638920))
|
||||||
|
* **docs:** Add development.md and refactor `images.yaml` and `charts.yaml` ([a2b333b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/a2b333b46277a4bb86b75ca04edb64e69efff916))
|
||||||
|
* **helmfile:** YAML handling of seLinuxOptions and align overall `toYaml` syntax ([011ad2c](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/011ad2cd6bfe552e04a598452e8814d4d1029152))
|
||||||
|
* **nextcloud:** Update images digests ([bc18724](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bc18724d70ffff749d5192487944e62233cf4376))
|
||||||
|
* **openproject:** Bump to 13.3.1 ([7ee9e47](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7ee9e47e8269334294c80093a359b247d86f5d62))
|
||||||
|
|
||||||
|
## [0.5.79](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.5.78...v0.5.79) (2024-02-29)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **collabora:** Bump image to 23.05.9.2.1 ([f4b8226](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f4b8226ea13971a38d61145ea9ac3821bc35f6b3))
|
||||||
|
* **collabora:** Fix aliasgroups configuration whitelisting the Nextcloud host ([8b065fd](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/8b065fd9d789cdd597a584937fefaae40f42bba2))
|
||||||
|
* **docs:** Update version numbers of functional components for release in README.md ([31e5cf3](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/31e5cf317ca7cd84a94cf42d57d0964152904471))
|
||||||
|
* **element:** Provide end-to-end encryption as user controlled option ([3d31127](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/3d31127a6ab0fa1d3af02695b521db5918932279))
|
||||||
|
* **helmfile:** Enhance objectore environment variables to allow external Object Store ([d444226](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d4442261aa141e21222dc13407023b96570d055f))
|
||||||
|
* **helmfile:** Set debuglevel to WARN instead of INFO when debug is not enabled. ([2efceef](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/2efceef076beb06a3719859d7f4e2f0d03b99f44))
|
||||||
|
* **nextcloud:** Bump images to enable password_policy and fix email with groupware ([8807b24](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/8807b24ce09e59aaea39c349e9e12ee2a44a117a))
|
||||||
|
* **univention-management-stack:** Bump Keycloak Extensions chart and configure the `/univention/meta.json` to be retrieved from `ums-stack-gateway` to avoid the inline 404 during Keycloak login. ([2023d5b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/2023d5bce4642f794831670713b1a2520a0419d6))
|
||||||
|
* **univention-management-stack:** Provisioning version bump ([410a023](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/410a0237149a5e41434c09795959bc53e57fb4ca))
|
||||||
|
* **univention-management-stack:** Template more Keycloak Extension values incl. logLevel ([7ec123b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7ec123b9a174c8dade1fe9f6679796979749efab))
|
||||||
|
|
||||||
## [0.5.78](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.5.77...v0.5.78) (2024-02-23)
|
## [0.5.78](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.5.77...v0.5.78) (2024-02-23)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
38
README.md
38
README.md
@@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2024 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@@ -11,6 +11,7 @@ SPDX-License-Identifier: Apache-2.0
|
|||||||
* [Requirements](#requirements)
|
* [Requirements](#requirements)
|
||||||
* [Getting started](#getting-started)
|
* [Getting started](#getting-started)
|
||||||
* [Advanced customization](#advanced-customization)
|
* [Advanced customization](#advanced-customization)
|
||||||
|
* [Development](#development)
|
||||||
* [Releases](#releases)
|
* [Releases](#releases)
|
||||||
* [Components](#components)
|
* [Components](#components)
|
||||||
* [Feedback](#feedback)
|
* [Feedback](#feedback)
|
||||||
@@ -26,17 +27,17 @@ Aufbau ZenDiS" of Germany's Federal Ministry of the Interior.
|
|||||||
|
|
||||||
openDesk currently features the following functional main components:
|
openDesk currently features the following functional main components:
|
||||||
|
|
||||||
| Function | Functional Component | Component<br/>Version | Upstream Documentation |
|
| Function | Functional Component | Component<br/>Version | Upstream Documentation |
|
||||||
| -------------------- | --------------------------- | --------------------- | ----------------- |
|
| -------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| Chat & collaboration | Element ft. Nordeck widgets | [1.11.52](https://github.com/element-hq/element-desktop/blob/develop/CHANGELOG.md#changes-in-11152-2023-12-19) | [For the most recent release](https://element.io/user-guide) |
|
| Chat & collaboration | Element ft. Nordeck widgets | [1.11.59](https://github.com/element-hq/element-desktop/releases/tag/v1.11.59) | [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/) |
|
| 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.2](https://nextcloud.com/de/changelog/#28-0-2) | [Nextcloud 28](https://docs.nextcloud.com/) |
|
| File management | Nextcloud | [28.0.2](https://nextcloud.com/de/changelog/#28-0-2) | [Nextcloud 28](https://docs.nextcloud.com/) |
|
||||||
| Groupware | OX Appsuite | [8.20](https://documentation.open-xchange.com/appsuite/releases/8.20/) | Online documentation available from within the installed application; [Additional resources](https://www.open-xchange.com/resources/oxpedia) |
|
| Groupware | OX Appsuite | [8.22](https://documentation.open-xchange.com/appsuite/releases/8.22/) | Online documentation available from within the installed application; [Additional resources](https://www.open-xchange.com/resources/oxpedia) |
|
||||||
| Knowledge management | XWiki | [15.10.4](https://www.xwiki.org/xwiki/bin/view/Blog/XWiki15104Released) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) |
|
| Knowledge management | XWiki | [15.10.4](https://www.xwiki.org/xwiki/bin/view/Blog/XWiki15104Released) | [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) |
|
| Portal & IAM | Nubus | Product Preview[^1] | [Univention's documentation website](https://docs.software-univention.de/n/en/index.html) |
|
||||||
| Project management | OpenProject | [13.3.0](https://www.openproject.org/docs/release-notes/13-3-0/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
|
| Project management | OpenProject | [13.4.1](https://www.openproject.org/docs/release-notes/13-4-1/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
|
||||||
| Videoconferencing | Jitsi | [2.0.8922](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_8922) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) |
|
| Videoconferencing | Jitsi | [2.0.8922](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_8922) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) |
|
||||||
| Weboffice | Collabora | [23.05.9.1.1](https://www.collaboraoffice.com/collabora-online-23-05-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) |
|
| Weboffice | Collabora | [23.05.9.4.1](https://www.collaboraoffice.com/collabora-online-23-05-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) |
|
||||||
|
|
||||||
While not all components are perfectly shaped for the execution inside containers, one of the project's objectives is to
|
While not all components are perfectly shaped for the execution inside containers, one of the project's objectives is to
|
||||||
align the applications with best practises regarding container design and operations.
|
align the applications with best practises regarding container design and operations.
|
||||||
@@ -76,6 +77,10 @@ Of course, further development also includes enhancing the documentation itself.
|
|||||||
- [Monitoring](./docs/monitoring.md)
|
- [Monitoring](./docs/monitoring.md)
|
||||||
- [Theming](./docs/theming.md)
|
- [Theming](./docs/theming.md)
|
||||||
|
|
||||||
|
# Development
|
||||||
|
|
||||||
|
⟶ To understand the repository contents from a developer perspective please read the [Development](./docs/development.md) guide.
|
||||||
|
|
||||||
# Releases
|
# Releases
|
||||||
|
|
||||||
All technical releases are created using [Semantic Versioning](https://semver.org/lang/de/).
|
All technical releases are created using [Semantic Versioning](https://semver.org/lang/de/).
|
||||||
@@ -84,9 +89,10 @@ Gitlab provides an
|
|||||||
[overview on the releases](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace/-/releases)
|
[overview on the releases](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace/-/releases)
|
||||||
of this project.
|
of this project.
|
||||||
|
|
||||||
The following release artefacts are provided beside the default source code assets:
|
Please find a list of the artefacts related to the release either in the source code archive attached to the release or
|
||||||
- `chart-index.json`: An overview of all Helm charts used by the release.
|
in the files from the release's git-tag:
|
||||||
- `image-index.json`: An overview of all container images used by the release.
|
- `./helmfile/environments/default/images.yaml`
|
||||||
|
- `./helmfile/environments/default/charts.yaml`
|
||||||
|
|
||||||
⟶ Visit our detailed [Workflow](./docs/workflow.md) docs.
|
⟶ Visit our detailed [Workflow](./docs/workflow.md) docs.
|
||||||
|
|
||||||
@@ -102,7 +108,7 @@ Related to the deployment / contents of this repository,
|
|||||||
please use the [issues within this project](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace/-/issues).
|
please use the [issues within this project](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace/-/issues).
|
||||||
|
|
||||||
If you want to address other topics, please check the section
|
If you want to address other topics, please check the section
|
||||||
["Rückmeldungen und Beteiligung" of the Infos' project OVERVIEW.md](https://gitlab.opencode.de/bmi/opendesk/info/-/blob/main/OVERVIEW.md#rückmeldungen-und-beteiligung).
|
["Rückmeldungen und Beteiligung" in the OVERVIEW.md](https://gitlab.opencode.de/bmi/opendesk/info/-/blob/main/OVERVIEW.md#rückmeldungen-und-beteiligung) of the [openDesk Info Repository](https://gitlab.opencode.de/bmi/opendesk/info).
|
||||||
|
|
||||||
# License
|
# License
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
-->
|
-->
|
||||||
<h1>Components</h1>
|
<h1>Components</h1>
|
||||||
@@ -34,7 +35,6 @@ they need to be replaced in production deployments.
|
|||||||
| ClamAV (Simple) | Antivirus engine | Eval |
|
| ClamAV (Simple) | Antivirus engine | Eval |
|
||||||
| Collabora | Weboffice | Functional |
|
| Collabora | Weboffice | Functional |
|
||||||
| CryptPad | Weboffice | Functional |
|
| CryptPad | Weboffice | Functional |
|
||||||
| Dovecot | Mail backend | Functional |
|
|
||||||
| Element | Secure communications platform | Functional |
|
| Element | Secure communications platform | Functional |
|
||||||
| Intercom Service | Cross service data exchange | Functional |
|
| Intercom Service | Cross service data exchange | Functional |
|
||||||
| Jitsi | Videoconferencing | Functional |
|
| Jitsi | Videoconferencing | Functional |
|
||||||
@@ -44,7 +44,8 @@ they need to be replaced in production deployments.
|
|||||||
| Nextcloud | File share | Functional |
|
| Nextcloud | File share | Functional |
|
||||||
| OpenProject | Project management | Functional |
|
| OpenProject | Project management | Functional |
|
||||||
| OX Appsuite | Groupware | Functional |
|
| OX Appsuite | Groupware | Functional |
|
||||||
| Provisioning | Backend provisioning | Functional |
|
| OX Dovecot | Mail backend (IMAP) | Functional |
|
||||||
|
| Provisioning (OX Connector) | Groupware provisioning | Functional |
|
||||||
| Postfix | MTA | Eval |
|
| Postfix | MTA | Eval |
|
||||||
| PostgreSQL | Database | Eval |
|
| PostgreSQL | Database | Eval |
|
||||||
| Redis | Cache Database | Eval |
|
| Redis | Cache Database | Eval |
|
||||||
@@ -73,7 +74,7 @@ flowchart TD
|
|||||||
|
|
||||||
## Intercom Service (ICS)
|
## Intercom Service (ICS)
|
||||||
|
|
||||||
The UCS Intercom Service's role is to enable cross-application integration based on browser interaction.
|
The Univention Intercom Service's role is to enable cross-application integration based on browser interaction.
|
||||||
Handling authentication when the frontend of an application is using the API from another application is often a
|
Handling authentication when the frontend of an application is using the API from another application is often a
|
||||||
challenge.
|
challenge.
|
||||||
For more details on the ICS please refer to its own [doc](./components/intercom-service.md).
|
For more details on the ICS please refer to its own [doc](./components/intercom-service.md).
|
||||||
@@ -113,8 +114,13 @@ The Filestore can be enabled on a per-project level in OpenProject's project adm
|
|||||||
# Identity data flows
|
# Identity data flows
|
||||||
|
|
||||||
An overview of
|
An overview of
|
||||||
- components that consume the LDAP service. Mostly by using a dedicated LDAP search account.
|
- components that consume the LDAP service.
|
||||||
- components using Univention Keycloak as identity provider (IdP). If not otherwise denoted based on the OAuth2 / OIDC flows.
|
- The components accessing the LDAP using a component specific LDAP search account.
|
||||||
|
- components using Univention Keycloak as identity provider (IdP).
|
||||||
|
- If not otherwise denoted the components make use of OAuth2 / OIDC flows.
|
||||||
|
- All components have a client configured in Keycloak, except for Jitsi which is using authentication with the
|
||||||
|
[Authorization Code Flow](https://openid.net/specs/openid-connect-core-1_0.html#CodeFlowAuth) that does not
|
||||||
|
require an OIDC client to be configured in Keycloak.
|
||||||
|
|
||||||
Some components trust others to handle authentication for them.
|
Some components trust others to handle authentication for them.
|
||||||
|
|
||||||
|
|||||||
142
docs/development.md
Normal file
142
docs/development.md
Normal file
@@ -0,0 +1,142 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: 2024 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
|
||||||
|
<h1>Developing openDesk deployment automation</h1>
|
||||||
|
|
||||||
|
Active development on the deployment is currently only available for project members.
|
||||||
|
But contributions will be possible soon once the CLA process is sorted out.
|
||||||
|
|
||||||
|
* [Overview](#overview)
|
||||||
|
* [Default branch, `develop` and other branches](#default-branch-develop-and-other-branches)
|
||||||
|
* [External artefacts - `charts.yaml` and `images.yaml`](#external-artefacts---chartsyaml-and-imagesyaml)
|
||||||
|
* [Linting](#linting)
|
||||||
|
* [Renovate](#renovate)
|
||||||
|
* [Mirroring](#mirroring)
|
||||||
|
* [Get new artefacts mirrored](#get-new-artefacts-mirrored)
|
||||||
|
* [Creating new charts / images](#creating-new-charts--images)
|
||||||
|
|
||||||
|
# Overview
|
||||||
|
|
||||||
|
The following sketch provides an high level overview to get a basic understanding of the deployment relevant
|
||||||
|
structure of this repository. An understanding of that structure is vital if you want to contribute to
|
||||||
|
the development of the deployment automation of openDesk.
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart TD
|
||||||
|
A[./helmfile.yaml]-->B[./helmfile/apps/*all_configured_apps*/helmfile.yaml\nReferences the relevant app Helm\ncharts using details from 'charts.yaml']
|
||||||
|
B-->C[./values-*all_configured_components*.yaml.gotmpl\nValues to template the charts\nwith references to the `images.yaml`]
|
||||||
|
A-->D[./helmfile/environments/default/*\nwith just some examples below]
|
||||||
|
D-->F[charts.yaml]
|
||||||
|
D-->G[images.yaml]
|
||||||
|
D-->H[global.*]
|
||||||
|
D-->I[secrets.yaml\nreplicas.yaml\nresources.yaml\n...]
|
||||||
|
A-->|overwrite defaults with your\ndeployment/environment specific values|E[./helmfile/environments/*your_environment*/values.yaml.gotmpl]
|
||||||
|
```
|
||||||
|
|
||||||
|
The `helmfile.yaml` in the root folder is the basis for the whole deployment. It references the app specific `helmfile.yaml` files as well as some
|
||||||
|
global values files in `./environments/default`. It allows you to overwrite defaults by using one of the three predefined environments `dev`, `test`
|
||||||
|
and `prod`.
|
||||||
|
|
||||||
|
Before you look into any app specifc configuration it is recommended to review the contents of `./environments/default` to get an understanding of what
|
||||||
|
details are maintained in there, as they are usually referenced by the app configurations.
|
||||||
|
|
||||||
|
# Default branch, `develop` and other branches
|
||||||
|
|
||||||
|
The `main` branch is configured to be the default branch, as visitors of the project on Open CoDE should see that
|
||||||
|
branch by default.
|
||||||
|
|
||||||
|
Please use the `develop` branch to diverge your own branch(es) from. See the [workflow guide](./workflow.md)
|
||||||
|
for more details on naming conventions.
|
||||||
|
|
||||||
|
There is a CI bot that automatically creates a merge request once you initially pushed your branch to Open CoDE.
|
||||||
|
The merge request will of course target the `develop` branch, be in status `draft` and have you as assignee.
|
||||||
|
|
||||||
|
In case you do not plan to actually merge from the branch you have pushed, please close or delete the autocreated MR.
|
||||||
|
|
||||||
|
# External artefacts - `charts.yaml` and `images.yaml`
|
||||||
|
|
||||||
|
The `charts.yaml` and `images.yaml` are the central place to reference external artefacts that are used for the deployment.
|
||||||
|
|
||||||
|
Beside the deployment automation itself some tools work with the contents of the files:
|
||||||
|
|
||||||
|
- **Linting**: Ensures consistency of the file contents for the other tools.
|
||||||
|
- **Renovate**: Automatically create MRs that update the components to their latest version.
|
||||||
|
- **Mirror**: Mirror artefacts to Open CoDE.
|
||||||
|
|
||||||
|
Please find details on these tools below.
|
||||||
|
|
||||||
|
## Linting
|
||||||
|
|
||||||
|
In the project's CI there is a step dedicated to lint the two yaml files, as we want them to be in
|
||||||
|
- alphabetical order regarding the components and
|
||||||
|
- in a logical order regarding the non-commented lines (registry > repository > tag).
|
||||||
|
|
||||||
|
In the linting step the [openDesk CI CLI](https://gitlab.opencode.de/bmi/opendesk/tooling/opendesk-ci-cli) is used to apply the
|
||||||
|
just mentioned sorting and the result is compared with the unsorted version. If there is a delta the linting fails and you probably
|
||||||
|
want to fix it by running the CLI tool locally.
|
||||||
|
|
||||||
|
**Note**: Please ensure that in component blocks you use comments only at the beginning of the block or at its end. Ideally you just stick
|
||||||
|
with the many available examples in the yaml files.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
synapse:
|
||||||
|
# providerCategory: 'Supplier'
|
||||||
|
# providerResponsible: 'Element'
|
||||||
|
# upstreamRegistry: 'registry-1.docker.io'
|
||||||
|
# upstreamRepository: 'matrixdotorg/synapse'
|
||||||
|
# upstreamMirrorTagFilterRegEx: '^v(\d+)\.(\d+)\.(\d+)$'
|
||||||
|
# upstreamMirrorStartFrom: ['1', '91', '2']
|
||||||
|
registry: "registry.opencode.de"
|
||||||
|
repository: "bmi/opendesk/components/supplier/element/images-mirror/synapse"
|
||||||
|
tag: "v1.91.2@sha256:1d19508db417bb2b911c8e086bd3dc3b719ee75c6f6194d58af59b4c32b11322"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Renovate
|
||||||
|
|
||||||
|
Uses a regular expression to match the values of the following attributes:
|
||||||
|
|
||||||
|
- `registry`
|
||||||
|
- `repository`
|
||||||
|
- `tag`
|
||||||
|
|
||||||
|
Checks for newer versions of the given artefact and creates a MR containing the newest version's tag (and digest).
|
||||||
|
|
||||||
|
## Mirroring
|
||||||
|
|
||||||
|
- See also: https://gitlab.opencode.de/bmi/opendesk/tooling/oci-pull-mirror
|
||||||
|
|
||||||
|
**Note:** The mirror is scheduled to run every hour at 42 minutes past the hour.
|
||||||
|
|
||||||
|
openDesk strives to make all relevant artefacts available on Open CoDE so there is the mirroring process
|
||||||
|
configured to pull artefacts that do not originate from Open CoDE into projects called `*-Mirror` within the
|
||||||
|
[openDesk Components section](https://gitlab.opencode.de/bmi/opendesk/components).
|
||||||
|
|
||||||
|
The mirror script takes the information on what artefacts to mirror from the annotation inside the two yaml files:
|
||||||
|
- `# upstreamRegistry` *required*: To identify the source registry
|
||||||
|
- `# upstreamRepository` *required*: To identify the source repository
|
||||||
|
- `# upstreamMirrorTagFilterRegEx` *required*: If this annotation is set it activates the mirror for the component. Only tags are being mirrored that match the given regular expression.
|
||||||
|
- `# upstreamMirrorStartFrom` *optional*: Array of numeric values in case you want to mirror only artefacts beginning with a specific version. You must use capturing groups
|
||||||
|
in `# upstreamMirrorTagFilterRegEx` to identify the single numeric elements of the version within the tag and use per capturing group (left to right) one numeric array
|
||||||
|
element here to define the version the mirror should start with.
|
||||||
|
|
||||||
|
### Get new artefacts mirrored
|
||||||
|
|
||||||
|
If you want new images or charts to be mirrored that are not yet included in one of the yaml files there are two options:
|
||||||
|
|
||||||
|
You include them in your branch with all required annotations and either
|
||||||
|
1. ask somebody from the platform development team to trigger the mirror's CI based on your branch or
|
||||||
|
2. you get your branch merged to `develop` already.
|
||||||
|
|
||||||
|
# Creating new charts / images
|
||||||
|
|
||||||
|
When you create new Helm charts please check out the
|
||||||
|
[openDesk Best Practises](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-best-practises)
|
||||||
|
for Helm charts.
|
||||||
|
|
||||||
|
You may also want to make use of our [standard CI](https://gitlab.opencode.de/bmi/opendesk/tooling/gitlab-config) to
|
||||||
|
easily get Charts and Images that are signed, linted, scanned and released.
|
||||||
|
Check out the `.gitlab-ci.yaml` files in the project's [Charts](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts) or [Images](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images) to get an idea how little you need to do yourself.
|
||||||
@@ -82,7 +82,6 @@ openDesk certificate management disabled.
|
|||||||
|
|
||||||
Evaluation the openDesk deployment does not require any external service to start, but features may be limited.
|
Evaluation the openDesk deployment does not require any external service to start, but features may be limited.
|
||||||
|
|
||||||
|
|
||||||
| Group | Type | Version | Tested against |
|
| Group | Type | Version | Tested against |
|
||||||
|----------|---------------------|---------|-----------------------|
|
|----------|---------------------|---------|-----------------------|
|
||||||
| Cache | Memached | `1.6.x` | Memached |
|
| Cache | Memached | `1.6.x` | Memached |
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<!--
|
<!--
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
-->
|
-->
|
||||||
|
|
||||||
@@ -139,17 +140,19 @@ As a standard, the openDesk platform development team uses [reuse.software](http
|
|||||||
|
|
||||||
openDesk uses Apache 2.0 as the license for their work. A typical reuse copyright and license header looks like this:
|
openDesk uses Apache 2.0 as the license for their work. A typical reuse copyright and license header looks like this:
|
||||||
```
|
```
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
```
|
```
|
||||||
As the way to mark the license header as a comment differs between the various filetypes, please find matching examples for the types all across the [deployment automation repository](https://gitlab.opencode.de/bmi/souveraener_arbeitsplatz/deployment/sovereign-workplace).
|
As the way to mark the license header as a comment differs between the various filetypes, please find matching examples for the types all across the [deployment automation repository](https://gitlab.opencode.de/bmi/souveraener_arbeitsplatz/deployment/sovereign-workplace).
|
||||||
|
|
||||||
|
**Remark**: If there is already an existing `SPDX-FileCopyrightText` please just add the one from the above example.
|
||||||
|
|
||||||
## Development workflow
|
## Development workflow
|
||||||
|
|
||||||
### Disclaimer
|
### Disclaimer
|
||||||
|
|
||||||
openDesk consists only of community products, so there is no SLA to receive service updates or backports of critical security fixes. This has two consequences:
|
openDesk consists only of community products, so there is no SLA to receive service updates or backports of critical security fixes. This has two consequences:
|
||||||
- In production scenarios, you should replace the community versions of the functional components with supported, SLA-backend paid versions.
|
- In production scenarios, you should replace the community versions of the functional components with supported, SLA-backed paid versions.
|
||||||
- openDesk aims to always update to the latest available releases of the community components and we therefore have rolling technical releases.
|
- openDesk aims to always update to the latest available releases of the community components and we therefore have rolling technical releases.
|
||||||
|
|
||||||
### Workflow
|
### Workflow
|
||||||
@@ -225,22 +228,28 @@ gitGraph
|
|||||||
|
|
||||||
The Standard Quality Gate addresses quality assurance steps that should be executed within each of the mentioned quality gates in the workflow.
|
The Standard Quality Gate addresses quality assurance steps that should be executed within each of the mentioned quality gates in the workflow.
|
||||||
|
|
||||||
|
1. Linting
|
||||||
|
- Blocking
|
||||||
|
- Licening: [reuse](https://github.com/fsfe/reuse-tool)
|
||||||
|
- openDesk specific: Especially `images.yaml` and `charts.yaml`, find more details in the [development](./development.md) docu
|
||||||
|
- Non Blocking
|
||||||
|
- Security: [Kyverno policy check](../.kyverno) addressing some IT-Grundschutz requirements
|
||||||
|
- Formal: Yaml
|
||||||
1. Deploy the full openDesk stack from scratch:
|
1. Deploy the full openDesk stack from scratch:
|
||||||
- All deployment steps must be successful (green)
|
- All deployment steps must be successful (green)
|
||||||
- All tests from the end-to-end test set must be successful
|
- All tests from the end-to-end test set must be successful
|
||||||
2. Update deployment[^3] of the full openDesk stack and apply the quality measures from the step #1:
|
1. Update deployment[^3] of the full openDesk stack and apply the quality measures from the step #1:
|
||||||
- Deploy the current merge target baseline (`develop` or `main`)
|
- Deploy the current merge target baseline (`develop` or `main`)
|
||||||
- Update deploy from your QA branch into the instance from the previous step
|
- Update deploy from your QA branch into the instance from the previous step
|
||||||
3. No showstopper found regarding
|
1. No showstopper found regarding
|
||||||
- SBOM compliance[^4]
|
- SBOM compliance[^4]
|
||||||
- Malware check
|
- Malware check
|
||||||
- CVE check[^5]
|
- CVE check[^5]
|
||||||
- Kubescape scan[^5]
|
- Kubescape scan[^5]
|
||||||
- Kyverno policy check (also covering some basic requirements from IT-Grundschutz)[^5]
|
|
||||||
|
|
||||||
Steps #1 and #2 from above are executed as GitLab CI and therefore documented within GitLab.
|
Steps #1 to #3 from above are executed as GitLab CI and therefore documented within GitLab.
|
||||||
|
|
||||||
Step #3 is focussed on security and was not fully implemented yet. Its main objective is to check for regressions. That step is just the second step of a security check and monitoring chain as shown below. While some checks can be executed against the static artefacts (e.g. container images) other might require an up-and-running instance. These are especially located in the third step below which is not yet implemented.
|
Step #4 is focussed on security and was not fully implemented yet. Its main objective is to check for regressions. That step is just the second step of a security check and monitoring chain as shown below. While some checks can be executed against the static artefacts (e.g. container images) other might require an up-and-running instance. These are especially located in the third step below which is not yet implemented.
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
flowchart TD
|
flowchart TD
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ collabora:
|
|||||||
username: "collabora-internal-admin"
|
username: "collabora-internal-admin"
|
||||||
password: {{ .Values.secrets.collabora.adminPassword | quote }}
|
password: {{ .Values.secrets.collabora.adminPassword | quote }}
|
||||||
aliasgroups:
|
aliasgroups:
|
||||||
- host: "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}:443"
|
- host: "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}"
|
||||||
|
|
||||||
fullnameOverride: "collabora"
|
fullnameOverride: "collabora"
|
||||||
|
|
||||||
@@ -19,9 +19,9 @@ grafana:
|
|||||||
dashboards:
|
dashboards:
|
||||||
enabled: {{ .Values.grafana.dashboards.enabled }}
|
enabled: {{ .Values.grafana.dashboards.enabled }}
|
||||||
labels:
|
labels:
|
||||||
{{- toYaml .Values.grafana.dashboards.labels | nindent 6 }}
|
{{ .Values.grafana.dashboards.labels | toYaml | nindent 6 }}
|
||||||
annotations:
|
annotations:
|
||||||
{{- toYaml .Values.grafana.dashboards.annotations | nindent 6 }}
|
{{ .Values.grafana.dashboards.annotations | toYaml | nindent 6 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.collabora.registry }}/{{ .Values.images.collabora.repository }}"
|
repository: "{{ .Values.global.imageRegistry | default .Values.images.collabora.registry }}/{{ .Values.images.collabora.repository }}"
|
||||||
@@ -90,11 +90,11 @@ prometheus:
|
|||||||
servicemonitor:
|
servicemonitor:
|
||||||
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
||||||
labels:
|
labels:
|
||||||
{{- toYaml .Values.prometheus.serviceMonitors.labels | nindent 6 }}
|
{{ .Values.prometheus.serviceMonitors.labels | toYaml | nindent 6 }}
|
||||||
rules:
|
rules:
|
||||||
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
{{- toYaml .Values.prometheus.prometheusRules.labels | nindent 6 }}
|
{{ .Values.prometheus.prometheusRules.labels | toYaml | nindent 6 }}
|
||||||
|
|
||||||
replicaCount: {{ .Values.replicas.collabora }}
|
replicaCount: {{ .Values.replicas.collabora }}
|
||||||
|
|
||||||
@@ -126,7 +126,8 @@ securityContext:
|
|||||||
- "NET_RAW"
|
- "NET_RAW"
|
||||||
- "SYS_CHROOT"
|
- "SYS_CHROOT"
|
||||||
- "MKNOD"
|
- "MKNOD"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.collabora }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.collabora | toYaml | nindent 4 }}
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
create: true
|
create: true
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -70,7 +70,8 @@ securityContext:
|
|||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
runAsUser: 4001
|
runAsUser: 4001
|
||||||
runAsGroup: 4001
|
runAsGroup: 4001
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.cryptpad }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.cryptpad | toYaml | nindent 4 }}
|
||||||
|
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
create: true
|
create: true
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
configuration:
|
configuration:
|
||||||
endToEndEncryption: false
|
endToEndEncryption: true
|
||||||
additionalConfiguration:
|
additionalConfiguration:
|
||||||
logout_redirect_url: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/logout?client_id=matrix&post_logout_redirect_uri=https%3A%2F%2F{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
logout_redirect_url: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/logout?client_id=matrix&post_logout_redirect_uri=https%3A%2F%2F{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
||||||
|
|
||||||
@@ -15,9 +15,6 @@ configuration:
|
|||||||
portal_url: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/"
|
portal_url: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/"
|
||||||
custom_css_variables:
|
custom_css_variables:
|
||||||
--cpd-color-text-action-accent: {{ .Values.theme.colors.primary | quote }}
|
--cpd-color-text-action-accent: {{ .Values.theme.colors.primary | quote }}
|
||||||
widget_types:
|
|
||||||
- jitsi
|
|
||||||
- net.nordeck
|
|
||||||
|
|
||||||
"net.nordeck.element_web.module.widget_lifecycle":
|
"net.nordeck.element_web.module.widget_lifecycle":
|
||||||
widget_permissions:
|
widget_permissions:
|
||||||
@@ -110,7 +107,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.element }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.element | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.matrixNeoBoardWidget }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.matrixNeoBoardWidget | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.matrixNeoChoiceWidget }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.matrixNeoChoiceWidget | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ securityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.synapseCreateUser }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.synapseCreateUser | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -35,7 +35,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.matrixNeoDateFixBot }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.matrixNeoDateFixBot | toYaml | nindent 4 }}
|
||||||
|
|
||||||
extraEnvVars:
|
extraEnvVars:
|
||||||
- name: "ACCESS_TOKEN"
|
- name: "ACCESS_TOKEN"
|
||||||
@@ -43,8 +44,6 @@ extraEnvVars:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: "matrix-neodatefix-bot-account"
|
name: "matrix-neodatefix-bot-account"
|
||||||
key: "access_token"
|
key: "access_token"
|
||||||
- name: "ENABLE_CRYPTO"
|
|
||||||
value: "false"
|
|
||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.matrixNeoDateFixWidget }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.matrixNeoDateFixWidget | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -35,5 +35,6 @@ securityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.synapseCreateUser }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.synapseCreateUser | toYaml | nindent 4 }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.matrixUserVerificationService }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.matrixUserVerificationService | toYaml | nindent 4 }}
|
||||||
|
|
||||||
extraEnvVars:
|
extraEnvVars:
|
||||||
- name: "UVS_ACCESS_TOKEN"
|
- name: "UVS_ACCESS_TOKEN"
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.synapseWeb }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.synapseWeb | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -79,7 +79,8 @@ containerSecurityContext:
|
|||||||
runAsGroup: 10991
|
runAsGroup: 10991
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.synapse }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.synapse | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
---
|
---
|
||||||
configuration:
|
configuration:
|
||||||
e2ee:
|
e2ee:
|
||||||
forceDisable: true
|
forceDisable: false
|
||||||
|
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -18,7 +18,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 101
|
runAsUser: 101
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.wellKnown }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.wellKnown | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.intercom }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.intercom | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
|||||||
@@ -23,7 +23,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 1993
|
runAsUser: 1993
|
||||||
runAsGroup: 1993
|
runAsGroup: 1993
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.jitsiKeycloakAdapter }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.jitsiKeycloakAdapter | toYaml | nindent 4 }}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
||||||
@@ -67,7 +68,6 @@ jitsi:
|
|||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities: {}
|
capabilities: {}
|
||||||
enabled: true
|
|
||||||
privileged: false
|
privileged: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
@@ -75,7 +75,8 @@ jitsi:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.jitsi }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.jitsi | toYaml | nindent 8 }}
|
||||||
prosody:
|
prosody:
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.prosody.registry }}/{{ .Values.images.prosody.repository }}"
|
repository: "{{ .Values.global.imageRegistry | default .Values.images.prosody.registry }}/{{ .Values.images.prosody.repository }}"
|
||||||
@@ -115,7 +116,6 @@ jitsi:
|
|||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities: {}
|
capabilities: {}
|
||||||
enabled: true
|
|
||||||
privileged: false
|
privileged: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
@@ -123,7 +123,8 @@ jitsi:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.prosody }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.prosody | toYaml | nindent 8 }}
|
||||||
jicofo:
|
jicofo:
|
||||||
replicaCount: {{ .Values.replicas.jicofo }}
|
replicaCount: {{ .Values.replicas.jicofo }}
|
||||||
image:
|
image:
|
||||||
@@ -137,7 +138,6 @@ jitsi:
|
|||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities: {}
|
capabilities: {}
|
||||||
enabled: true
|
|
||||||
privileged: false
|
privileged: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
@@ -145,7 +145,8 @@ jitsi:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.jicofo }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.jicofo | toYaml | nindent 8 }}
|
||||||
jvb:
|
jvb:
|
||||||
replicaCount: {{ .Values.replicas.jvb }}
|
replicaCount: {{ .Values.replicas.jvb }}
|
||||||
image:
|
image:
|
||||||
@@ -160,7 +161,6 @@ jitsi:
|
|||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities: {}
|
capabilities: {}
|
||||||
enabled: true
|
|
||||||
privileged: false
|
privileged: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
@@ -168,7 +168,8 @@ jitsi:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.jvb }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.jvb | toYaml | nindent 8 }}
|
||||||
jibri:
|
jibri:
|
||||||
replicaCount: {{ .Values.replicas.jibri }}
|
replicaCount: {{ .Values.replicas.jibri }}
|
||||||
image:
|
image:
|
||||||
@@ -206,7 +207,8 @@ patchJVB:
|
|||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.jitsiPatchJVB }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.jitsiPatchJVB | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.jitsiPatchJVB.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.jitsiPatchJVB.registry | quote }}
|
||||||
|
|||||||
@@ -51,9 +51,16 @@ configuration:
|
|||||||
objectstore:
|
objectstore:
|
||||||
auth:
|
auth:
|
||||||
accessKey:
|
accessKey:
|
||||||
value: "nextcloud_user"
|
value: {{ .Values.objectstores.nextcloud.username | quote }}
|
||||||
secretKey:
|
secretKey:
|
||||||
value: {{ .Values.secrets.minio.nextcloudUser | quote }}
|
value: {{ .Values.objectstores.nextcloud.secretKey | default .Values.secrets.minio.nextcloudUser | quote }}
|
||||||
|
bucket: {{ .Values.objectstores.nextcloud.bucket | quote }}
|
||||||
|
host: {{ .Values.objectstores.nextcloud.endpoint | default (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
||||||
|
region: {{ .Values.objectstores.nextcloud.region | quote }}
|
||||||
|
storageClass: {{ .Values.objectstores.nextcloud.storageClass | quote }}
|
||||||
|
port: {{ .Values.objectstores.nextcloud.port | quote }}
|
||||||
|
pathStyle: {{ .Values.objectstores.nextcloud.pathStyle | quote }}
|
||||||
|
useSSL: {{ .Values.objectstores.nextcloud.useSSL | quote }}
|
||||||
oidc:
|
oidc:
|
||||||
username:
|
username:
|
||||||
value: "opendesk-nextcloud"
|
value: "opendesk-nextcloud"
|
||||||
@@ -88,7 +95,8 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.nextcloudManagement }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.nextcloudManagement | toYaml | nindent 4 }}
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"1"{{ end }}
|
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"1"{{ end }}
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ exporter:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.nextcloudExporter }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.nextcloudExporter | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudExporter.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudExporter.registry | quote }}
|
||||||
repository: "{{ .Values.images.nextcloudExporter.repository }}"
|
repository: "{{ .Values.images.nextcloudExporter.repository }}"
|
||||||
@@ -35,11 +36,11 @@ exporter:
|
|||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
||||||
labels:
|
labels:
|
||||||
{{- toYaml .Values.prometheus.serviceMonitors.labels | nindent 8 }}
|
{{ .Values.prometheus.serviceMonitors.labels | toYaml | nindent 8 }}
|
||||||
prometheusRule:
|
prometheusRule:
|
||||||
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
{{- toYaml .Values.prometheus.prometheusRules.labels | nindent 8 }}
|
{{ .Values.prometheus.prometheusRules.labels | toYaml | nindent 8 }}
|
||||||
replicaCount: {{ .Values.replicas.nextcloudExporter }}
|
replicaCount: {{ .Values.replicas.nextcloudExporter }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.nextcloudExporter | toYaml | nindent 4 }}
|
{{ .Values.resources.nextcloudExporter | toYaml | nindent 4 }}
|
||||||
@@ -78,7 +79,8 @@ php:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.nextcloudPHP }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.nextcloudPHP | toYaml | nindent 6 }}
|
||||||
cron:
|
cron:
|
||||||
successfulJobsHistoryLimit: {{ if .Values.debug.enabled }}"3"{{ else }}"0"{{ end }}
|
successfulJobsHistoryLimit: {{ if .Values.debug.enabled }}"3"{{ else }}"0"{{ end }}
|
||||||
debug:
|
debug:
|
||||||
@@ -92,11 +94,11 @@ php:
|
|||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
||||||
labels:
|
labels:
|
||||||
{{- toYaml .Values.prometheus.serviceMonitors.labels | nindent 8 }}
|
{{ .Values.prometheus.serviceMonitors.labels | toYaml | nindent 8 }}
|
||||||
prometheusRule:
|
prometheusRule:
|
||||||
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
{{- toYaml .Values.prometheus.prometheusRules.labels | nindent 8 }}
|
{{ .Values.prometheus.prometheusRules.labels | toYaml | nindent 8 }}
|
||||||
replicaCount: {{ .Values.replicas.nextcloudPHP }}
|
replicaCount: {{ .Values.replicas.nextcloudPHP }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.nextcloudPHP | toYaml | nindent 4 }}
|
{{ .Values.resources.nextcloudPHP | toYaml | nindent 4 }}
|
||||||
@@ -118,7 +120,8 @@ apache2:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.nextcloudApache2 }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.nextcloudApache2 | toYaml | nindent 6 }}
|
||||||
ingress:
|
ingress:
|
||||||
enabled: {{ .Values.ingress.enabled }}
|
enabled: {{ .Values.ingress.enabled }}
|
||||||
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
|
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ bases:
|
|||||||
---
|
---
|
||||||
repositories:
|
repositories:
|
||||||
# openDesk Dovecot
|
# openDesk Dovecot
|
||||||
# Source: https://gitlab.opencode.de/bmi/opendesk/components/charts/opendesk-dovecot
|
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-dovecot
|
||||||
- name: "dovecot-repo"
|
- name: "dovecot-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.dovecot.verify }}
|
verify: {{ .Values.charts.dovecot.verify }}
|
||||||
@@ -18,6 +18,8 @@ repositories:
|
|||||||
|
|
||||||
# Open-Xchange
|
# Open-Xchange
|
||||||
- name: "open-xchange-repo"
|
- name: "open-xchange-repo"
|
||||||
|
keyring: "../../files/gpg-pubkeys/open-xchange-com.gpg"
|
||||||
|
verify: {{ .Values.charts.openXchangeAppSuite.verify }}
|
||||||
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
|
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
|
||||||
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
|
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
|
||||||
oci: true
|
oci: true
|
||||||
@@ -25,7 +27,7 @@ repositories:
|
|||||||
{{ .Values.charts.openXchangeAppSuite.repository }}"
|
{{ .Values.charts.openXchangeAppSuite.repository }}"
|
||||||
|
|
||||||
# openDesk Open-Xchange Bootstrap
|
# openDesk Open-Xchange Bootstrap
|
||||||
# Source: https://gitlab.opencode.de/bmi/opendesk/components/charts/opendesk-open-xchange-bootstrap
|
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-open-xchange-bootstrap
|
||||||
- name: "open-xchange-bootstrap-repo"
|
- name: "open-xchange-bootstrap-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.openXchangeAppSuiteBootstrap.verify }}
|
verify: {{ .Values.charts.openXchangeAppSuiteBootstrap.verify }}
|
||||||
|
|||||||
@@ -66,7 +66,8 @@ containerSecurityContext:
|
|||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.dovecot }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.dovecot | toYaml | nindent 4 }}
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|||||||
@@ -40,7 +40,8 @@ nextcloud-integration-ui:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeNextcloudIntegrationUI }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeNextcloudIntegrationUI | toYaml | nindent 6 }}
|
||||||
|
|
||||||
public-sector-ui:
|
public-sector-ui:
|
||||||
image:
|
image:
|
||||||
@@ -67,7 +68,8 @@ public-sector-ui:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangePublicSectorUI }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangePublicSectorUI | toYaml | nindent 6 }}
|
||||||
|
|
||||||
appsuite:
|
appsuite:
|
||||||
appsuite-toolkit:
|
appsuite-toolkit:
|
||||||
@@ -131,7 +133,8 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeGotenberg }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeGotenberg | toYaml | nindent 10 }}
|
||||||
hooks:
|
hooks:
|
||||||
beforeAppsuiteStart:
|
beforeAppsuiteStart:
|
||||||
create-guard-dir.sh: |
|
create-guard-dir.sh: |
|
||||||
@@ -356,7 +359,8 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeCoreUI }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeCoreUI | toYaml | nindent 8 }}
|
||||||
|
|
||||||
core-ui-middleware:
|
core-ui-middleware:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -398,7 +402,8 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeCoreUIMiddleware }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeCoreUIMiddleware | toYaml | nindent 8 }}
|
||||||
core-cacheservice:
|
core-cacheservice:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
@@ -428,7 +433,8 @@ appsuite:
|
|||||||
- "ALL"
|
- "ALL"
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeDocumentConverter }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeDocumentConverter | toYaml | nindent 8 }}
|
||||||
|
|
||||||
core-documents-collaboration:
|
core-documents-collaboration:
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -470,7 +476,8 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeCoreGuidedtours }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeCoreGuidedtours | toYaml | nindent 8 }}
|
||||||
|
|
||||||
core-imageconverter:
|
core-imageconverter:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -500,7 +507,8 @@ appsuite:
|
|||||||
- "ALL"
|
- "ALL"
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeImageConverter }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeImageConverter | toYaml | nindent 8 }}
|
||||||
|
|
||||||
guard-ui:
|
guard-ui:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -526,7 +534,8 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeGuardUI }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeGuardUI | toYaml | nindent 8 }}
|
||||||
core-spellcheck:
|
core-spellcheck:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
@@ -555,5 +564,6 @@ appsuite:
|
|||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openxchangeCoreUserGuide }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openxchangeCoreUserGuide | toYaml | nindent 8 }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openprojectBootstrap }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openprojectBootstrap | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openprojectBootstrap.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.openprojectBootstrap.registry | quote }}
|
||||||
|
|||||||
@@ -20,12 +20,13 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.openproject }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.openproject | toYaml | nindent 4 }}
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
# For more details and more options see
|
# For more details and more options see
|
||||||
# https://www.openproject.org/docs/installation-and-operations/configuration/environment/
|
# https://www.openproject.org/docs/installation-and-operations/configuration/environment/
|
||||||
OPENPROJECT_LOG__LEVEL: {{ if .Values.debug.enabled }}"debug"{{ else }}"info"{{ end }}
|
OPENPROJECT_LOG__LEVEL: {{ if .Values.debug.enabled }}"debug"{{ else }}"warn"{{ end }}
|
||||||
OPENPROJECT_LOGIN__REQUIRED: "true"
|
OPENPROJECT_LOGIN__REQUIRED: "true"
|
||||||
OPENPROJECT_OAUTH__ALLOW__REMAPPING__OF__EXISTING__USERS: "true"
|
OPENPROJECT_OAUTH__ALLOW__REMAPPING__OF__EXISTING__USERS: "true"
|
||||||
OPENPROJECT_OMNIAUTH__DIRECT__LOGIN__PROVIDER: "keycloak"
|
OPENPROJECT_OMNIAUTH__DIRECT__LOGIN__PROVIDER: "keycloak"
|
||||||
@@ -155,13 +156,13 @@ s3:
|
|||||||
enabled: true
|
enabled: true
|
||||||
endpoint: {{ .Values.objectstores.openproject.endpoint | default (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
endpoint: {{ .Values.objectstores.openproject.endpoint | default (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
||||||
host: {{ (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
host: {{ (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
||||||
pathStyle: "true"
|
pathStyle: {{ .Values.objectstores.openproject.pathStyle | quote }}
|
||||||
region: {{ .Values.objectstores.openproject.region | quote }}
|
region: {{ .Values.objectstores.openproject.region | quote }}
|
||||||
bucketName: {{ .Values.objectstores.openproject.bucket | quote }}
|
bucketName: {{ .Values.objectstores.openproject.bucket | quote }}
|
||||||
use_iam_profile: {{ .Values.objectstores.openproject.useIAMProfile | default "false" | quote }}
|
use_iam_profile: {{ .Values.objectstores.openproject.useIAMProfile | default "false" | quote }}
|
||||||
auth:
|
auth:
|
||||||
accessKeyId: {{ .Values.objectstores.openproject.username | quote }}
|
accessKeyId: {{ .Values.objectstores.openproject.username | quote }}
|
||||||
secretAccessKey: {{ .Values.objectstores.openproject.secret | default .Values.secrets.minio.openprojectUser | quote }}
|
secretAccessKey: {{ .Values.objectstores.openproject.secretKey | default .Values.secrets.minio.openprojectUser | quote }}
|
||||||
|
|
||||||
seederJob:
|
seederJob:
|
||||||
annotations:
|
annotations:
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ oxConnector:
|
|||||||
debugLevel: {{ if .Values.debug.enabled }}"4"{{ else }}"1"{{ end }}
|
debugLevel: {{ if .Values.debug.enabled }}"4"{{ else }}"1"{{ end }}
|
||||||
domainName: {{ .Values.global.domain | quote }}
|
domainName: {{ .Values.global.domain | quote }}
|
||||||
ldapHost: {{ .Values.ldap.host | quote }}
|
ldapHost: {{ .Values.ldap.host | quote }}
|
||||||
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
|
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
|
||||||
ldapPassword: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
ldapPassword: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
||||||
ldapBaseDn: "dc=swp-ldap,dc=internal"
|
ldapBaseDn: "dc=swp-ldap,dc=internal"
|
||||||
ldapHostDn: "cn=admin,dc=swp-ldap,dc=internal"
|
ldapHostDn: "cn=admin,dc=swp-ldap,dc=internal"
|
||||||
@@ -85,7 +85,8 @@ securityContext:
|
|||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.oxConnector }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.oxConnector | toYaml | nindent 4 }}
|
||||||
|
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
create: true
|
create: true
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ clamd:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.clamd }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.clamd | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.clamd.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.clamd.registry | quote }}
|
||||||
repository: {{ .Values.images.clamd.repository | quote }}
|
repository: {{ .Values.images.clamd.repository | quote }}
|
||||||
@@ -41,7 +42,8 @@ containerSecurityContext:
|
|||||||
capabilities:
|
capabilities:
|
||||||
drop: []
|
drop: []
|
||||||
privileged: false
|
privileged: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.clamav }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.clamav | toYaml | nindent 4 }}
|
||||||
|
|
||||||
freshclam:
|
freshclam:
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
@@ -57,7 +59,8 @@ freshclam:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.freshclam }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.freshclam | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.freshclam.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.freshclam.registry | quote }}
|
||||||
repository: {{ .Values.images.freshclam.repository | quote }}
|
repository: {{ .Values.images.freshclam.repository | quote }}
|
||||||
@@ -89,7 +92,8 @@ icap:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.icap }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.icap | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.icap.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.icap.registry | quote }}
|
||||||
repository: {{ .Values.images.icap.repository | quote }}
|
repository: {{ .Values.images.icap.repository | quote }}
|
||||||
@@ -117,7 +121,8 @@ milter:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.milter }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.milter | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.milter.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.milter.registry | quote }}
|
||||||
repository: {{ .Values.images.milter.repository | quote }}
|
repository: {{ .Values.images.milter.repository | quote }}
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.clamavSimple }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.clamavSimple | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.mariadb }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.mariadb | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ containerSecurityContext:
|
|||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.memcached }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.memcached | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ containerSecurityContext:
|
|||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.minio }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.minio | toYaml | nindent 4 }}
|
||||||
|
|
||||||
defaultBuckets: "openproject,openxchange,ums,nextcloud"
|
defaultBuckets: "openproject,openxchange,ums,nextcloud"
|
||||||
|
|
||||||
@@ -68,7 +69,7 @@ metrics:
|
|||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
{{- toYaml .Values.prometheus.serviceMonitors.labels | nindent 6 }}
|
{{ .Values.prometheus.serviceMonitors.labels | toYaml | nindent 6 }}
|
||||||
|
|
||||||
networkPolicy:
|
networkPolicy:
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -88,16 +89,13 @@ provisioning:
|
|||||||
extraCommands:
|
extraCommands:
|
||||||
- "mc anonymous set download provisioning/ums/portal-assets"
|
- "mc anonymous set download provisioning/ums/portal-assets"
|
||||||
buckets:
|
buckets:
|
||||||
- name: "openproject"
|
- name: {{ .Values.objectstores.openproject.bucket | quote }}
|
||||||
versioning: true
|
|
||||||
withLock: false
|
|
||||||
- name: "openxchange"
|
|
||||||
versioning: true
|
versioning: true
|
||||||
withLock: false
|
withLock: false
|
||||||
- name: {{ .Values.objectstores.univentionManagementStack.bucket | quote }}
|
- name: {{ .Values.objectstores.univentionManagementStack.bucket | quote }}
|
||||||
versioning: false
|
versioning: false
|
||||||
withLock: false
|
withLock: false
|
||||||
- name: "nextcloud"
|
- name: {{ .Values.objectstores.nextcloud.bucket | quote }}
|
||||||
versioning: true
|
versioning: true
|
||||||
withLock: false
|
withLock: false
|
||||||
policies:
|
policies:
|
||||||
@@ -113,18 +111,6 @@ provisioning:
|
|||||||
effect: "Allow"
|
effect: "Allow"
|
||||||
actions:
|
actions:
|
||||||
- "s3:*"
|
- "s3:*"
|
||||||
- name: "openxchange-bucket-policy"
|
|
||||||
statements:
|
|
||||||
- resources:
|
|
||||||
- "arn:aws:s3:::openxchange"
|
|
||||||
effect: "Allow"
|
|
||||||
actions:
|
|
||||||
- "s3:*"
|
|
||||||
- resources:
|
|
||||||
- "arn:aws:s3:::openxchange/*"
|
|
||||||
effect: "Allow"
|
|
||||||
actions:
|
|
||||||
- "s3:*"
|
|
||||||
- name: "ums-bucket-policy"
|
- name: "ums-bucket-policy"
|
||||||
statements:
|
statements:
|
||||||
- resources:
|
- resources:
|
||||||
@@ -150,25 +136,19 @@ provisioning:
|
|||||||
actions:
|
actions:
|
||||||
- "s3:*"
|
- "s3:*"
|
||||||
users:
|
users:
|
||||||
- username: "openproject_user"
|
- username: {{ .Values.objectstores.openproject.username | quote }}
|
||||||
password: {{ .Values.secrets.minio.openprojectUser | quote }}
|
password: {{ .Values.secrets.minio.openprojectUser | quote }}
|
||||||
disabled: false
|
disabled: false
|
||||||
policies:
|
policies:
|
||||||
- "openproject-bucket-policy"
|
- "openproject-bucket-policy"
|
||||||
setPolicies: true
|
setPolicies: true
|
||||||
- username: "openxchange_user"
|
|
||||||
password: {{ .Values.secrets.minio.openxchangeUser | quote }}
|
|
||||||
disabled: false
|
|
||||||
policies:
|
|
||||||
- "openxchange-bucket-policy"
|
|
||||||
setPolicies: true
|
|
||||||
- username: {{ .Values.objectstores.univentionManagementStack.username | quote }}
|
- username: {{ .Values.objectstores.univentionManagementStack.username | quote }}
|
||||||
password: {{ .Values.secrets.minio.umsUser | quote }}
|
password: {{ .Values.secrets.minio.umsUser | quote }}
|
||||||
disabled: false
|
disabled: false
|
||||||
policies:
|
policies:
|
||||||
- "ums-bucket-policy"
|
- "ums-bucket-policy"
|
||||||
setPolicies: true
|
setPolicies: true
|
||||||
- username: "nextcloud_user"
|
- username: {{ .Values.objectstores.nextcloud.username | quote }}
|
||||||
password: {{ .Values.secrets.minio.nextcloudUser | quote }}
|
password: {{ .Values.secrets.minio.nextcloudUser | quote }}
|
||||||
disabled: false
|
disabled: false
|
||||||
policies:
|
policies:
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ apps:
|
|||||||
enabled: {{ .Values.intercom.enabled }}
|
enabled: {{ .Values.intercom.enabled }}
|
||||||
jitsi:
|
jitsi:
|
||||||
enabled: {{ .Values.jitsi.enabled }}
|
enabled: {{ .Values.jitsi.enabled }}
|
||||||
keycloak:
|
|
||||||
enabled: {{ .Values.keycloak.enabled }}
|
|
||||||
mariadb:
|
mariadb:
|
||||||
enabled: {{ .Values.mariadb.enabled }}
|
enabled: {{ .Values.mariadb.enabled }}
|
||||||
memcached:
|
memcached:
|
||||||
@@ -47,6 +45,10 @@ apps:
|
|||||||
xwiki:
|
xwiki:
|
||||||
enabled: {{ .Values.xwiki.enabled }}
|
enabled: {{ .Values.xwiki.enabled }}
|
||||||
|
|
||||||
|
ingressController:
|
||||||
|
{{ .Values.security.ingressController | toYaml | nindent 2 }}
|
||||||
|
|
||||||
|
|
||||||
extraApps:
|
extraApps:
|
||||||
clusterPostfix:
|
clusterPostfix:
|
||||||
enabled: {{ .Values.security.clusterPostfix.enabled }}
|
enabled: {{ .Values.security.clusterPostfix.enabled }}
|
||||||
|
|||||||
@@ -17,7 +17,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
privileged: true
|
privileged: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.postfix }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.postfix | toYaml | nindent 4 }}
|
||||||
|
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.postgresql }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.postgresql | toYaml | nindent 4 }}
|
||||||
|
|
||||||
job:
|
job:
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,8 @@ master:
|
|||||||
capabilities:
|
capabilities:
|
||||||
drop:
|
drop:
|
||||||
- "ALL"
|
- "ALL"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.redis }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.redis | toYaml | nindent 6 }}
|
||||||
count: {{ .Values.replicas.redis }}
|
count: {{ .Values.replicas.redis }}
|
||||||
persistence:
|
persistence:
|
||||||
size: {{ .Values.persistence.size.redis | quote }}
|
size: {{ .Values.persistence.size.redis | quote }}
|
||||||
|
|||||||
@@ -350,6 +350,15 @@ releases:
|
|||||||
installed: {{ .Values.univentionManagementStack.enabled }}
|
installed: {{ .Values.univentionManagementStack.enabled }}
|
||||||
timeout: 900
|
timeout: 900
|
||||||
|
|
||||||
|
- name: "ums-provisioning-udm-listener"
|
||||||
|
chart: "ums-provisioning-repo/{{ .Values.charts.umsProvisioningUdmListener.name }}"
|
||||||
|
version: "{{ .Values.charts.umsProvisioningUdmListener.version }}"
|
||||||
|
values:
|
||||||
|
- "values-common.yaml.gotmpl"
|
||||||
|
- "values-provisioning-udm-listener.yaml.gotmpl"
|
||||||
|
installed: {{ .Values.univentionManagementStack.enabled }}
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
- name: "ums-guardian-management-api"
|
- name: "ums-guardian-management-api"
|
||||||
chart: "ums-guardian-management-api-repo/{{ .Values.charts.umsGuardianManagementApi.name }}"
|
chart: "ums-guardian-management-api-repo/{{ .Values.charts.umsGuardianManagementApi.name }}"
|
||||||
version: "{{ .Values.charts.umsGuardianManagementApi.version }}"
|
version: "{{ .Values.charts.umsGuardianManagementApi.version }}"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ guardianAuthorizationApi:
|
|||||||
guardianAuthzAdapterAppPersistencePort: "udm_data"
|
guardianAuthzAdapterAppPersistencePort: "udm_data"
|
||||||
guardianAuthzAdapterPolicyPort: "opa"
|
guardianAuthzAdapterPolicyPort: "opa"
|
||||||
guardianAuthzAdapterAuthenticationPort: "fast_api_oauth"
|
guardianAuthzAdapterAuthenticationPort: "fast_api_oauth"
|
||||||
guardianAuthzLoggingLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
|
guardianAuthzLoggingLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARNING"{{ end }}
|
||||||
guardianAuthzLoggingStructured: false
|
guardianAuthzLoggingStructured: false
|
||||||
guardianAuthzLoggingFormat: "<green>{time:YYYY-MM-DD HH:mm:ss.SSS ZZ}</green> | <level>{level}</level> | <level>{message}</level> | {extra}"
|
guardianAuthzLoggingFormat: "<green>{time:YYYY-MM-DD HH:mm:ss.SSS ZZ}</green> | <level>{level}</level> | <level>{message}</level> | {extra}"
|
||||||
home: "/guardian_service_dir"
|
home: "/guardian_service_dir"
|
||||||
@@ -55,6 +55,7 @@ securityContext:
|
|||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsGuardianAuthorizationApi }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsGuardianAuthorizationApi | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ guardianManagementApi:
|
|||||||
guardianManagementAdapterAuthenticationPort: "fast_api_oauth"
|
guardianManagementAdapterAuthenticationPort: "fast_api_oauth"
|
||||||
guardianManagementAdapterAuthorizationApiUrl: "http://ums-guardian-authorization-api/guardian/authorization"
|
guardianManagementAdapterAuthorizationApiUrl: "http://ums-guardian-authorization-api/guardian/authorization"
|
||||||
guardianManagementAdapterResourceAuthorizationPort: "always"
|
guardianManagementAdapterResourceAuthorizationPort: "always"
|
||||||
guardianManagementLoggingLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
|
guardianManagementLoggingLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARNING"{{ end }}
|
||||||
guardianManagementLoggingStructured: false
|
guardianManagementLoggingStructured: false
|
||||||
guardianManagementLoggingFormat: "<green>{time:YYYY-MM-DD HH:mm:ss.SSS ZZ}</green> | <level>{level}</level> | <level>{message}</level> | {extra}"
|
guardianManagementLoggingFormat: "<green>{time:YYYY-MM-DD HH:mm:ss.SSS ZZ}</green> | <level>{level}</level> | <level>{message}</level> | {extra}"
|
||||||
guardianManagementBaseUrl: "http://0.0.0.0:8000"
|
guardianManagementBaseUrl: "http://0.0.0.0:8000"
|
||||||
@@ -73,6 +73,7 @@ securityContext:
|
|||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsGuardianManagementApi }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsGuardianManagementApi | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ securityContext:
|
|||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsGuardianManagementUi }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsGuardianManagementUi | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -16,9 +16,6 @@ resources:
|
|||||||
|
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- "ALL"
|
|
||||||
privileged: false
|
privileged: false
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
@@ -27,7 +24,8 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsLdapNotifier }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsLdapNotifier | toYaml | nindent 4 }}
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
claims:
|
claims:
|
||||||
|
|||||||
@@ -23,65 +23,70 @@ extraVolumeMounts:
|
|||||||
mountPath: "/var/lib/univention-ldap-local/local-schema/opendeskProjectmanagement.schema"
|
mountPath: "/var/lib/univention-ldap-local/local-schema/opendeskProjectmanagement.schema"
|
||||||
subPath: "opendeskProjectmanagement.schema"
|
subPath: "opendeskProjectmanagement.schema"
|
||||||
|
|
||||||
image:
|
extraSecrets:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.umsLdapServer.registry | quote }}
|
- name: ums-stack-openldap-credentials
|
||||||
repository: {{ .Values.images.umsLdapServer.repository | quote }}
|
stringData:
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
adminPassword: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
||||||
tag: {{ .Values.images.umsLdapServer.tag | quote }}
|
|
||||||
pullSecrets:
|
|
||||||
{{- range .Values.global.imagePullSecrets }}
|
|
||||||
- name: {{ . | quote }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
waitForDependency:
|
waitForDependency:
|
||||||
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.umsWaitForDependency.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.umsWaitForDependency.registry | quote }}
|
||||||
repository: {{ .Values.images.umsWaitForDependency.repository | quote }}
|
repository: {{ .Values.images.umsWaitForDependency.repository | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
tag: {{ .Values.images.umsWaitForDependency.tag | quote }}
|
tag: {{ .Values.images.umsWaitForDependency.tag | quote }}
|
||||||
|
|
||||||
ldapServer:
|
ldapServer:
|
||||||
waitForSamlMetadata: true
|
image:
|
||||||
ldapSecret: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.umsLdapServer.registry | quote }}
|
||||||
ldapBaseDn: {{ .Values.ldap.baseDn | quote }}
|
repository: {{ .Values.images.umsLdapServer.repository | quote }}
|
||||||
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
tag: {{ .Values.images.umsLdapServer.tag | quote }}
|
||||||
|
pullSecrets:
|
||||||
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
|
- name: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
config:
|
||||||
|
domainName: "univention-organization.intranet"
|
||||||
|
ldapBaseDn: {{ .Values.ldap.baseDn | quote }}
|
||||||
|
samlMetadataUrl: {{ printf "http://ums-keycloak.%s.svc.%s:8080/realms/%s/protocol/saml/descriptor" .Release.Namespace .Values.cluster.networking.domain .Values.platform.realm | quote }}
|
||||||
|
samlMetadataUrlInternal: {{ printf "http://ums-keycloak.%s.svc.%s:8080/realms/%s/protocol/saml/descriptor" .Release.Namespace .Values.cluster.networking.domain .Values.platform.realm | quote }}
|
||||||
|
samlServiceProviders: {{ printf "https://%s.%s%s" .Values.global.hosts.univentionManagementStack .Values.global.domain "/univention/saml/metadata" | quote }}
|
||||||
|
credentialSecret:
|
||||||
|
name: ums-stack-openldap-credentials
|
||||||
|
key: adminPassword
|
||||||
|
|
||||||
persistence:
|
persistence:
|
||||||
sharedData:
|
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
||||||
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
size: {{ .Values.persistence.size.univentionManagementStack.ldapServerData | quote }}
|
||||||
size: {{ .Values.persistence.size.univentionManagementStack.ldapServerData | quote }}
|
legacy:
|
||||||
sharedRun:
|
sharedRunSize: {{ .Values.persistence.size.univentionManagementStack.ldapServerShared | quote }}
|
||||||
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
|
||||||
size: {{ .Values.persistence.size.univentionManagementStack.ldapServerShared | quote }}
|
|
||||||
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- "ALL"
|
|
||||||
add:
|
|
||||||
- "CHOWN"
|
|
||||||
- "DAC_OVERRIDE"
|
|
||||||
- "FOWNER"
|
|
||||||
- "FSETID"
|
|
||||||
- "KILL"
|
|
||||||
- "SETGID"
|
|
||||||
- "SETUID"
|
|
||||||
- "SETPCAP"
|
|
||||||
- "NET_BIND_SERVICE"
|
|
||||||
- "NET_RAW"
|
|
||||||
- "SYS_CHROOT"
|
|
||||||
privileged: false
|
|
||||||
seccompProfile:
|
|
||||||
type: "RuntimeDefault"
|
|
||||||
readOnlyRootFilesystem: false
|
|
||||||
runAsUser: 0
|
|
||||||
runAsGroup: 0
|
|
||||||
runAsNonRoot: false
|
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsLdapServer }}
|
|
||||||
|
|
||||||
service:
|
|
||||||
type: "ClusterIP"
|
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsLdapServer | toYaml | nindent 2 }}
|
{{ .Values.resources.umsLdapServer | toYaml | nindent 2 }}
|
||||||
|
|
||||||
|
initResources:
|
||||||
|
{{ .Values.resources.umsLdapServerInit | toYaml | nindent 2 }}
|
||||||
|
|
||||||
|
podSecurityContext:
|
||||||
|
enabled: true
|
||||||
|
fsGroup: 102
|
||||||
|
fsGroupChangePolicy: "Always"
|
||||||
|
sysctls:
|
||||||
|
- name: "net.ipv4.ip_unprivileged_port_start"
|
||||||
|
value: "1"
|
||||||
|
|
||||||
|
containerSecurityContext:
|
||||||
|
enabled: true
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- "ALL"
|
||||||
|
runAsUser: 101
|
||||||
|
runAsGroup: 102
|
||||||
|
seccompProfile:
|
||||||
|
type: "RuntimeDefault"
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ postgresql:
|
|||||||
username: {{ .Values.databases.umsNotificationsApi.username | quote }}
|
username: {{ .Values.databases.umsNotificationsApi.username | quote }}
|
||||||
database: {{ .Values.databases.umsNotificationsApi.name | quote }}
|
database: {{ .Values.databases.umsNotificationsApi.name | quote }}
|
||||||
password: {{ .Values.databases.umsNotificationsApi.password | default .Values.secrets.postgresql.umsNotificationsApiUser | quote }}
|
password: {{ .Values.databases.umsNotificationsApi.password | default .Values.secrets.postgresql.umsNotificationsApiUser | quote }}
|
||||||
|
existingSecret: "ums-notifications-api-postgresql-credentials"
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsNotificationsApi | toYaml | nindent 2 }}
|
{{ .Values.resources.umsNotificationsApi | toYaml | nindent 2 }}
|
||||||
@@ -44,6 +45,11 @@ securityContext:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsNotificationsApi }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsNotificationsApi | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
extraSecrets:
|
||||||
|
- name: ums-notifications-api-postgresql-credentials
|
||||||
|
stringData:
|
||||||
|
password: {{ .Values.databases.umsNotificationsApi.password | default .Values.secrets.postgresql.umsNotificationsApiUser | quote }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ securityContext:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsOpenPolicyAgent }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsOpenPolicyAgent | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -597,7 +597,8 @@ containerSecurityContext:
|
|||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.opendeskKeycloakBootstrap }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.opendeskKeycloakBootstrap | toYaml | nindent 4 }}
|
||||||
|
|
||||||
podAnnotations:
|
podAnnotations:
|
||||||
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
||||||
|
|||||||
@@ -112,5 +112,6 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsPortalFrontend }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsPortalFrontend | toYaml | nindent 4 }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -41,10 +41,10 @@ portalListener:
|
|||||||
udmApiUsername: "cn=admin"
|
udmApiUsername: "cn=admin"
|
||||||
umcGetUrl: "http://ums-umc-server/get"
|
umcGetUrl: "http://ums-umc-server/get"
|
||||||
umcSessionUrl: "http://ums-umc-server/get/session-info"
|
umcSessionUrl: "http://ums-umc-server/get/session-info"
|
||||||
objectStorageEndpoint: "http://minio:9000"
|
objectStorageEndpoint: {{ .Values.objectstores.univentionManagementStack.endpoint | default (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
||||||
objectStorageBucket: "ums"
|
objectStorageBucket: {{ .Values.objectstores.univentionManagementStack.bucket | quote }}
|
||||||
objectStorageAccessKeyId: "ums_user"
|
objectStorageAccessKeyId: {{ .Values.objectstores.univentionManagementStack.username | quote }}
|
||||||
objectStorageSecretAccessKey: {{ .Values.secrets.minio.umsUser | quote }}
|
objectStorageSecretAccessKey: {{ .Values.objectstores.univentionManagementStack.secretKey | default .Values.secrets.minio.umsUser | quote }}
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsPortalListener | toYaml | nindent 2 }}
|
{{ .Values.resources.umsPortalListener | toYaml | nindent 2 }}
|
||||||
@@ -79,6 +79,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsPortalListener }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsPortalListener | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -16,46 +16,60 @@ portalServer:
|
|||||||
editable: "false"
|
editable: "false"
|
||||||
umcGetUrl: "http://ums-umc-server/get"
|
umcGetUrl: "http://ums-umc-server/get"
|
||||||
umcSessionUrl: "http://ums-umc-server/get/session-info"
|
umcSessionUrl: "http://ums-umc-server/get/session-info"
|
||||||
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
|
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
|
||||||
adminGroup: {{ printf "%s,%s" "cn=Domain Admins,cn=groups" .Values.ldap.baseDn | quote }}
|
adminGroup: {{ printf "%s,%s" "cn=Domain Admins,cn=groups" .Values.ldap.baseDn | quote }}
|
||||||
ucsInternalPath: "portal-data"
|
ucsInternalPath: "portal-data"
|
||||||
objectStorageEndpoint: "http://minio:9000"
|
objectStorageEndpoint: {{ .Values.objectstores.univentionManagementStack.endpoint | default (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
||||||
objectStorageBucket: "ums"
|
objectStorageBucket: {{ .Values.objectstores.univentionManagementStack.bucket | quote }}
|
||||||
objectStorageAccessKeyId: "ums_user"
|
|
||||||
objectStorageSecretAccessKey: {{ .Values.secrets.minio.umsUser | quote }}
|
|
||||||
centralNavigation:
|
centralNavigation:
|
||||||
enabled: true
|
enabled: true
|
||||||
authenticatorSecret: {{ .Values.secrets.centralnavigation.apiKey | quote }}
|
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-portal-server-minio-credentials"
|
||||||
|
|
||||||
replicaCount: {{ .Values.replicas.umsPortalServer }}
|
replicaCount: {{ .Values.replicas.umsPortalServer }}
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsPortalServer | toYaml | nindent 2 }}
|
{{ .Values.resources.umsPortalServer | toYaml | nindent 2 }}
|
||||||
|
|
||||||
securityContext:
|
podSecurityContext:
|
||||||
|
enabled: true
|
||||||
|
fsGroup: 1000
|
||||||
|
fsGroupChangePolicy: "Always"
|
||||||
|
sysctls:
|
||||||
|
- name: "net.ipv4.ip_unprivileged_port_start"
|
||||||
|
value: "1"
|
||||||
|
|
||||||
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
drop:
|
drop:
|
||||||
- "ALL"
|
- "ALL"
|
||||||
add:
|
enabled: true
|
||||||
- "CHOWN"
|
runAsUser: 1000
|
||||||
- "DAC_OVERRIDE"
|
runAsGroup: 1000
|
||||||
- "FOWNER"
|
|
||||||
- "FSETID"
|
|
||||||
- "KILL"
|
|
||||||
- "SETGID"
|
|
||||||
- "SETUID"
|
|
||||||
- "SETPCAP"
|
|
||||||
- "NET_BIND_SERVICE"
|
|
||||||
- "NET_RAW"
|
|
||||||
- "SYS_CHROOT"
|
|
||||||
privileged: false
|
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: true
|
||||||
runAsUser: 0
|
runAsNonRoot: true
|
||||||
runAsGroup: 0
|
|
||||||
runAsNonRoot: false
|
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsPortalServer }}
|
|
||||||
|
|
||||||
|
|
||||||
|
extraSecrets:
|
||||||
|
- name: ums-portal-server-minio-credentials
|
||||||
|
stringData:
|
||||||
|
accessKeyId: {{ .Values.objectstores.univentionManagementStack.username | quote }}
|
||||||
|
secretAccessKey: {{ .Values.objectstores.univentionManagementStack.secretKey | default .Values.secrets.minio.umsUser | quote }}
|
||||||
|
- name: ums-portal-server-authenticator-credentials
|
||||||
|
stringData:
|
||||||
|
authenticator.secret: {{ .Values.secrets.centralnavigation.apiKey | quote }}
|
||||||
|
|
||||||
|
extraVolumes:
|
||||||
|
- name: authenticator-secret
|
||||||
|
secret:
|
||||||
|
secretName: ums-portal-server-authenticator-credentials
|
||||||
|
|
||||||
|
extraVolumeMounts:
|
||||||
|
- name: authenticator-secret
|
||||||
|
mountPath: "/var/secrets/authenticator.secret"
|
||||||
|
subPath: "authenticator.secret"
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
|
---
|
||||||
|
image:
|
||||||
|
registry: {{ .Values.global.imageRegistry | default .Values.images.umsProvisioningUdmListener.registry | quote }}
|
||||||
|
repository: {{ .Values.images.umsProvisioningUdmListener.repository | quote }}
|
||||||
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
tag: {{ .Values.images.umsProvisioningUdmListener.tag | quote }}
|
||||||
|
pullSecrets:
|
||||||
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
|
- name: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
config:
|
||||||
|
ldapBaseDn: {{ .Values.ldap.baseDn | quote }}
|
||||||
|
ldapHost: {{ .Values.ldap.host | quote }}
|
||||||
|
ldapHostDn: {{ printf "%s,%s" "cn=admin" .Values.ldap.baseDn | quote }}
|
||||||
|
ldapPassword: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
||||||
|
notifierServer: {{ .Values.ldap.notifierHost | quote }}
|
||||||
|
tlsMode: "off"
|
||||||
|
natsHost: "ums-provisioning-nats"
|
||||||
|
natsPort: "4222"
|
||||||
|
natsUser: "udmlistener"
|
||||||
|
natsPassword: {{ .Values.secrets.univentionManagementStack.provisioning.udmListenerNatsPassword }}
|
||||||
|
internalApiHost: "ums-provisioning-api"
|
||||||
|
eventsUsernameUdm: "udmproducer"
|
||||||
|
eventsPasswordUdm: {{ .Values.secrets.univentionManagementStack.provisioning.udmProducerPassword }}
|
||||||
|
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsProvisioningUdmListener | toYaml | nindent 4 }}
|
||||||
|
...
|
||||||
@@ -4,6 +4,22 @@ SPDX-License-Identifier: Apache-2.0
|
|||||||
*/}}
|
*/}}
|
||||||
---
|
---
|
||||||
|
|
||||||
|
api:
|
||||||
|
image:
|
||||||
|
registry: {{ .Values.global.imageRegistry | default .Values.images.umsProvisioningEventsAndConsumerApi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.umsProvisioningEventsAndConsumerApi.repository | quote }}
|
||||||
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
tag: {{ .Values.images.umsProvisioningEventsAndConsumerApi.tag | quote }}
|
||||||
|
pullSecrets:
|
||||||
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
|
- name: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
config:
|
||||||
|
rootPath: "/univention/provisioning-api"
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsProvisioningEventsAndConsumerApi | toYaml | nindent 4 }}
|
||||||
|
credentialSecretName: "ums-provisioning-api-credentials"
|
||||||
|
|
||||||
dispatcher:
|
dispatcher:
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.umsProvisioningDispatcher.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.umsProvisioningDispatcher.registry | quote }}
|
||||||
@@ -15,123 +31,191 @@ dispatcher:
|
|||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsProvisioning | toYaml | nindent 4 }}
|
{{ .Values.resources.umsProvisioningDispatcher | toYaml | nindent 4 }}
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- "ALL"
|
|
||||||
privileged: false
|
|
||||||
seccompProfile:
|
|
||||||
type: "RuntimeDefault"
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
runAsNonRoot: true
|
|
||||||
readOnlyRootFilesystem: false
|
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsProvisioningDispatcher }}
|
|
||||||
|
|
||||||
events-and-consumer-api:
|
|
||||||
image:
|
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.umsProvisioningEventsAndConsumerApi.registry | quote }}
|
|
||||||
repository: {{ .Values.images.umsProvisioningEventsAndConsumerApi.repository | quote }}
|
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
|
||||||
tag: {{ .Values.images.umsProvisioningEventsAndConsumerApi.tag | quote }}
|
|
||||||
pullSecrets:
|
|
||||||
{{- range .Values.global.imagePullSecrets }}
|
|
||||||
- name: {{ . | quote }}
|
|
||||||
{{- end }}
|
|
||||||
rootPath: "/univention/provisioning-api"
|
|
||||||
ingress:
|
|
||||||
# copied from values-common.yaml.gotmpl
|
|
||||||
# Intentionally not using the Ingress configuration of the UMS stack at the
|
|
||||||
# moment, since it does depend on rewriting capabilities of the ingress
|
|
||||||
# controller. Those are encapsulated into the release "stack-gateway" so that
|
|
||||||
# the compatibility with all ingress controllers is increased.
|
|
||||||
enabled: false
|
|
||||||
host: {{ printf "%s.%s" .Values.global.hosts.univentionManagementStack .Values.global.domain | quote }}
|
|
||||||
resources:
|
|
||||||
{{ .Values.resources.umsProvisioning | toYaml | nindent 4 }}
|
|
||||||
securityContext:
|
|
||||||
allowPrivilegeEscalation: false
|
|
||||||
capabilities:
|
|
||||||
drop:
|
|
||||||
- "ALL"
|
|
||||||
privileged: false
|
|
||||||
seccompProfile:
|
|
||||||
type: "RuntimeDefault"
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
runAsNonRoot: true
|
|
||||||
readOnlyRootFilesystem: false
|
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsProvisioningEventsAndConsumerApi }}
|
|
||||||
|
|
||||||
udm-listener:
|
|
||||||
image:
|
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.umsProvisioningUdmListener.registry | quote }}
|
|
||||||
repository: {{ .Values.images.umsProvisioningUdmListener.repository | quote }}
|
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
|
||||||
tag: {{ .Values.images.umsProvisioningUdmListener.tag | quote }}
|
|
||||||
pullSecrets:
|
|
||||||
{{- range .Values.global.imagePullSecrets }}
|
|
||||||
- name: {{ . | quote }}
|
|
||||||
{{- end }}
|
|
||||||
config:
|
config:
|
||||||
ldapBaseDn: {{ .Values.ldap.baseDn | quote }}
|
UDM_HOST: "ums-udm-rest-api"
|
||||||
ldapHost: {{ .Values.ldap.host | quote }}
|
UDM_PORT: 80
|
||||||
ldapHostDn: {{ printf "%s,%s" "cn=admin" .Values.ldap.baseDn | quote }}
|
credentialSecretName: "ums-provisioning-dispatcher-credentials"
|
||||||
ldapPassword: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
|
||||||
|
prefill:
|
||||||
|
image:
|
||||||
|
registry: {{ .Values.global.imageRegistry | default .Values.images.umsProvisioningPrefill.registry | quote }}
|
||||||
|
repository: {{ .Values.images.umsProvisioningPrefill.repository | quote }}
|
||||||
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
tag: {{ .Values.images.umsProvisioningPrefill.tag | quote }}
|
||||||
|
pullSecrets:
|
||||||
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
|
- name: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsProvisioning | toYaml | nindent 4 }}
|
{{ .Values.resources.umsProvisioningPrefill | toYaml | nindent 4 }}
|
||||||
securityContext:
|
config:
|
||||||
allowPrivilegeEscalation: false
|
UDM_HOST: "ums-udm-rest-api"
|
||||||
capabilities:
|
UDM_PORT: 80
|
||||||
drop:
|
credentialSecretName: "ums-provisioning-prefill-credentials"
|
||||||
- "ALL"
|
|
||||||
add:
|
|
||||||
- "CHOWN"
|
|
||||||
- "DAC_OVERRIDE"
|
|
||||||
- "FOWNER"
|
|
||||||
- "FSETID"
|
|
||||||
- "KILL"
|
|
||||||
- "SETGID"
|
|
||||||
- "SETUID"
|
|
||||||
- "SETPCAP"
|
|
||||||
- "NET_BIND_SERVICE"
|
|
||||||
- "NET_RAW"
|
|
||||||
- "SYS_CHROOT"
|
|
||||||
privileged: false
|
|
||||||
seccompProfile:
|
|
||||||
type: "RuntimeDefault"
|
|
||||||
runAsUser: 0
|
|
||||||
runAsGroup: 0
|
|
||||||
runAsNonRoot: false
|
|
||||||
readOnlyRootFilesystem: false
|
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsProvisioningUdmListener }}
|
|
||||||
|
|
||||||
nats:
|
nats:
|
||||||
global:
|
affinity: ""
|
||||||
image:
|
nameOverride: ""
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
bundled: true
|
||||||
pullSecretNames: {{ .Values.global.imagePullSecrets }}
|
connection:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.umsProvisioningNats.registry | quote }}
|
host: "ums-provisioning-nats"
|
||||||
container:
|
port: 4222
|
||||||
image:
|
config:
|
||||||
registry: {{ .Values.global.imageRegistry }}
|
authorization:
|
||||||
repository: {{ .Values.images.umsProvisioningNats.repository | quote }}
|
enabled: true
|
||||||
tag: {{ .Values.images.umsProvisioningNats.tag | quote }}
|
users:
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
- user: "$NATS_USER"
|
||||||
natsBox:
|
password: "$NATS_PASSWORD"
|
||||||
container:
|
permissions:
|
||||||
image:
|
publish: ">"
|
||||||
registry: {{ .Values.global.imageRegistry }}
|
subscribe: ">"
|
||||||
repository: {{ .Values.images.umsProvisioningNatsBox.repository | quote }}
|
- user: "$NATS_API_USER"
|
||||||
tag: {{ .Values.images.umsProvisioningNatsBox.tag | quote }}
|
password: "$NATS_API_PASSWORD"
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
permissions:
|
||||||
reloader:
|
publish: ">"
|
||||||
image:
|
subscribe: ">"
|
||||||
repository: {{ .Values.images.umsProvisioningNatsReloader.repository | quote }}
|
- user: "$NATS_DISPATCHER_USER"
|
||||||
tag: {{ .Values.images.umsProvisioningNatsReloader.tag | quote }}
|
password: "$NATS_DISPATCHER_PASSWORD"
|
||||||
registry: {{ .Values.global.imageRegistry }}
|
permissions:
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
publish: ">"
|
||||||
|
subscribe: ">"
|
||||||
|
- user: "$NATS_PREFILL_USER"
|
||||||
|
password: "$NATS_PREFILL_PASSWORD"
|
||||||
|
permissions:
|
||||||
|
publish: ">"
|
||||||
|
subscribe: ">"
|
||||||
|
- user: "$NATS_UDMLISTENER_USER"
|
||||||
|
password: "$NATS_UDMLISTENER_PASSWORD"
|
||||||
|
permissions:
|
||||||
|
publish: ">"
|
||||||
|
subscribe: ">"
|
||||||
|
- user: "$NATS_ADMIN_USER"
|
||||||
|
password: "$NATS_ADMIN_PASSWORD"
|
||||||
|
permissions:
|
||||||
|
publish: ">"
|
||||||
|
subscribe: ">"
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsProvisioningNats | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
extraEnvVars:
|
||||||
|
- name: NATS_USER
|
||||||
|
value: "master_admin"
|
||||||
|
- name: NATS_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-nats-credentials
|
||||||
|
key: admin_password
|
||||||
|
- name: NATS_ADMIN_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-api-credentials
|
||||||
|
key: ADMIN_NATS_USER
|
||||||
|
- name: NATS_ADMIN_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-api-credentials
|
||||||
|
key: ADMIN_NATS_PASSWORD
|
||||||
|
- name: NATS_API_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-api-credentials
|
||||||
|
key: NATS_USER
|
||||||
|
- name: NATS_API_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-api-credentials
|
||||||
|
key: NATS_PASSWORD
|
||||||
|
- name: NATS_DISPATCHER_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-dispatcher-credentials
|
||||||
|
key: NATS_USER
|
||||||
|
- name: NATS_DISPATCHER_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-dispatcher-credentials
|
||||||
|
key: NATS_PASSWORD
|
||||||
|
- name: NATS_PREFILL_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-prefill-credentials
|
||||||
|
key: NATS_USER
|
||||||
|
- name: NATS_PREFILL_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-prefill-credentials
|
||||||
|
key: NATS_PASSWORD
|
||||||
|
- name: NATS_UDMLISTENER_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-udmlistener-credentials
|
||||||
|
key: NATS_USER
|
||||||
|
- name: NATS_UDMLISTENER_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ums-provisioning-udmlistener-credentials
|
||||||
|
key: NATS_PASSWORD
|
||||||
|
|
||||||
|
extraSecrets:
|
||||||
|
- name: ums-provisioning-nats-credentials
|
||||||
|
stringData:
|
||||||
|
admin_password: {{ .Values.secrets.nats.natsAdminPassword }}
|
||||||
|
- name: ums-provisioning-api-credentials
|
||||||
|
stringData:
|
||||||
|
NATS_USER: "api"
|
||||||
|
NATS_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.apiNatsPassword }}
|
||||||
|
ADMIN_NATS_USER: "admin"
|
||||||
|
ADMIN_NATS_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.apiAdminNatsPassword }}
|
||||||
|
UDM_HOST: "udm-rest-api"
|
||||||
|
ADMIN_USERNAME: "admin"
|
||||||
|
ADMIN_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.apiAdminPassword }}
|
||||||
|
DISPATCHER_USERNAME: "dispatcher"
|
||||||
|
DISPATCHER_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.dispatcherPassword }}
|
||||||
|
PREFILL_USERNAME: "prefill"
|
||||||
|
PREFILL_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.prefillPassword }}
|
||||||
|
EVENTS_USERNAME_UDM: "udmproducer"
|
||||||
|
EVENTS_PASSWORD_UDM: {{ .Values.secrets.univentionManagementStack.provisioning.udmProducerPassword }}
|
||||||
|
- name: ums-provisioning-dispatcher-credentials
|
||||||
|
stringData:
|
||||||
|
NATS_USER: "dispatcher"
|
||||||
|
NATS_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.dispatcherNatsPassword }}
|
||||||
|
DISPATCHER_USERNAME: "dispatcher"
|
||||||
|
DISPATCHER_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.dispatcherPassword }}
|
||||||
|
- name: ums-provisioning-prefill-credentials
|
||||||
|
stringData:
|
||||||
|
NATS_USER: "prefill"
|
||||||
|
NATS_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.prefillNatsPassword }}
|
||||||
|
UDM_USERNAME: "cn=admin"
|
||||||
|
UDM_PASSWORD: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
||||||
|
PREFILL_USERNAME: "prefill"
|
||||||
|
PREFILL_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.prefillPassword }}
|
||||||
|
- name: ums-provisioning-udmlistener-credentials
|
||||||
|
stringData:
|
||||||
|
NATS_USER: "udmlistener"
|
||||||
|
NATS_PASSWORD: {{ .Values.secrets.univentionManagementStack.provisioning.udmListenerNatsPassword }}
|
||||||
|
|
||||||
|
containerSecurityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- "ALL"
|
||||||
|
enabled: true
|
||||||
|
runAsUser: 1000
|
||||||
|
runAsGroup: 1000
|
||||||
|
seccompProfile:
|
||||||
|
type: "RuntimeDefault"
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
|
||||||
|
podSecurityContext:
|
||||||
|
enabled: true
|
||||||
|
fsGroup: 1000
|
||||||
|
fsGroupChangePolicy: "Always"
|
||||||
|
sysctls:
|
||||||
|
- name: "net.ipv4.ip_unprivileged_port_start"
|
||||||
|
value: "1"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsSelfserviceListener }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsSelfserviceListener | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsDataLoader }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsDataLoader | toYaml | nindent 4 }}
|
||||||
|
|
||||||
stackDataContext:
|
stackDataContext:
|
||||||
ldapBase: "dc=swp-ldap,dc=internal"
|
ldapBase: "dc=swp-ldap,dc=internal"
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsDataLoader }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsDataLoader | toYaml | nindent 4 }}
|
||||||
|
|
||||||
stackDataContext:
|
stackDataContext:
|
||||||
idpSamlMetadataUrlInternal: null
|
idpSamlMetadataUrlInternal: null
|
||||||
@@ -48,6 +49,10 @@ stackDataContext:
|
|||||||
ldapSamlSpUrls: {{ printf "https://%s.%s%s" .Values.global.hosts.univentionManagementStack .Values.global.domain "/univention/saml/metadata" | quote }}
|
ldapSamlSpUrls: {{ printf "https://%s.%s%s" .Values.global.hosts.univentionManagementStack .Values.global.domain "/univention/saml/metadata" | quote }}
|
||||||
initialPasswordAdministrator: {{ .Values.secrets.univentionManagementStack.systemAccounts.administratorPassword | quote }}
|
initialPasswordAdministrator: {{ .Values.secrets.univentionManagementStack.systemAccounts.administratorPassword | quote }}
|
||||||
initialPasswordSysIdpUser: {{ .Values.secrets.univentionManagementStack.systemAccounts.sysIdpUserPassword | quote }}
|
initialPasswordSysIdpUser: {{ .Values.secrets.univentionManagementStack.systemAccounts.sysIdpUserPassword | quote }}
|
||||||
|
umcPostgresqlHostname: {{ .Values.databases.umsSelfservice.host | quote }}
|
||||||
|
umcPostgresqlUsername: {{ .Values.databases.umsSelfservice.username | quote }}
|
||||||
|
umcMemcachedHostname: {{ .Values.cache.umsSelfservice.host | quote }}
|
||||||
|
umcMemcachedUsername: "selfservice"
|
||||||
|
|
||||||
stackDataUms:
|
stackDataUms:
|
||||||
loadDevData: true
|
loadDevData: true
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsStoreDav }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsStoreDav | toYaml | nindent 4 }}
|
||||||
|
|
||||||
storeDav:
|
storeDav:
|
||||||
auth:
|
auth:
|
||||||
|
|||||||
@@ -14,53 +14,51 @@ extraVolumeMounts:
|
|||||||
mountPath: "/usr/share/attribute-to-group-mapper/flag_to_group_mapping.json"
|
mountPath: "/usr/share/attribute-to-group-mapper/flag_to_group_mapping.json"
|
||||||
subPath: "flag_to_group_mapping.json"
|
subPath: "flag_to_group_mapping.json"
|
||||||
|
|
||||||
image:
|
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.umsUdmRestApi.registry | quote }}
|
|
||||||
repository: {{ .Values.images.umsUdmRestApi.repository | quote }}
|
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
|
||||||
tag: {{ .Values.images.umsUdmRestApi.tag | quote }}
|
|
||||||
pullSecrets:
|
|
||||||
{{- range .Values.global.imagePullSecrets }}
|
|
||||||
- name: {{ . | quote }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsUdmRestApi | toYaml | nindent 2 }}
|
{{ .Values.resources.umsUdmRestApi | toYaml | nindent 2 }}
|
||||||
|
|
||||||
|
initResources:
|
||||||
|
{{ .Values.resources.umsUdmRestApiInit | toYaml | nindent 2 }}
|
||||||
|
|
||||||
replicaCount: {{ .Values.replicas.umsUdmRestApi }}
|
replicaCount: {{ .Values.replicas.umsUdmRestApi }}
|
||||||
|
|
||||||
securityContext:
|
podSecurityContext:
|
||||||
|
enabled: true
|
||||||
|
fsGroup: 1000
|
||||||
|
fsGroupChangePolicy: "Always"
|
||||||
|
|
||||||
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
drop:
|
drop:
|
||||||
- "ALL"
|
- "ALL"
|
||||||
add:
|
enabled: true
|
||||||
- "CHOWN"
|
runAsUser: 1000
|
||||||
- "DAC_OVERRIDE"
|
runAsGroup: 1000
|
||||||
- "FOWNER"
|
|
||||||
- "FSETID"
|
|
||||||
- "KILL"
|
|
||||||
- "SETGID"
|
|
||||||
- "SETUID"
|
|
||||||
- "SETPCAP"
|
|
||||||
- "NET_BIND_SERVICE"
|
|
||||||
- "NET_RAW"
|
|
||||||
- "SYS_CHROOT"
|
|
||||||
privileged: false
|
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: true
|
||||||
runAsUser: 0
|
runAsNonRoot: true
|
||||||
runAsGroup: 0
|
|
||||||
runAsNonRoot: false
|
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsUdmRestApi }}
|
|
||||||
|
|
||||||
udmRestApi:
|
udmRestApi:
|
||||||
# TODO: Stub value currently
|
secretRef: ums-udm-rest-api-credentials
|
||||||
caCert: ""
|
ldap:
|
||||||
# TODO: Secret should be entered without b64enc
|
uri: "ldap://{{ .Values.ldap.host }}:389"
|
||||||
ldapSecret: {{ .Values.secrets.univentionManagementStack.ldapSecret | b64enc | quote }}
|
baseDN: {{ .Values.ldap.baseDn | quote }}
|
||||||
# TODO: Secret should be entered without b64enc
|
image:
|
||||||
machineSecret: {{ .Values.secrets.univentionManagementStack.ldapSecret | b64enc | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.umsUdmRestApi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.umsUdmRestApi.repository | quote }}
|
||||||
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
tag: {{ .Values.images.umsUdmRestApi.tag | quote }}
|
||||||
|
pullSecrets:
|
||||||
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
|
- name: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
extraSecrets:
|
||||||
|
- name: ums-udm-rest-api-credentials
|
||||||
|
stringData:
|
||||||
|
ldap.secret: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
||||||
|
machine.secret: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsUmcGateway }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsUmcGateway | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -53,7 +53,8 @@ memcached:
|
|||||||
bundled: false
|
bundled: false
|
||||||
auth:
|
auth:
|
||||||
username: null
|
username: null
|
||||||
password: null
|
# This is also used by the umc-server Helm chart to generate a secret. The secrets content is represented as an environment variable. If said variable is empty, the container fails to start due to an entrypoint script erroring on a nullish value for the environment variable SELF_SERVICE_MEMCACHED_SECRET.
|
||||||
|
password: "password"
|
||||||
server: {{ .Values.cache.umsSelfservice.host | quote }}
|
server: {{ .Values.cache.umsSelfservice.host | quote }}
|
||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
@@ -94,14 +95,16 @@ securityContext:
|
|||||||
runAsUser: 0
|
runAsUser: 0
|
||||||
runAsGroup: 0
|
runAsGroup: 0
|
||||||
runAsNonRoot: false
|
runAsNonRoot: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsUmcServer }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsUmcServer | toYaml | nindent 4 }}
|
||||||
|
|
||||||
umcServer:
|
umcServer:
|
||||||
certPemFile: "/var/secrets/ssl/tls.crt"
|
certPemFile: "/var/secrets/ssl/tls.crt"
|
||||||
# TODO: Secret should be entered without b64enc
|
caCert: "Cg=="
|
||||||
ldapSecret: {{ .Values.secrets.univentionManagementStack.ldapSecret | b64enc | quote }}
|
certPem: "Cg=="
|
||||||
# TODO: Secret should be entered without b64enc
|
privateKey: "Cg=="
|
||||||
machineSecret: {{ .Values.secrets.univentionManagementStack.ldapSecret | b64enc | quote }}
|
ldapSecret: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
||||||
|
machineSecret: {{ .Values.secrets.univentionManagementStack.ldapSecret | quote }}
|
||||||
smtpSecret: {{ .Values.smtp.password | quote }}
|
smtpSecret: {{ .Values.smtp.password | quote }}
|
||||||
privateKeyFile: "/var/secrets/ssl/tls.key"
|
privateKeyFile: "/var/secrets/ssl/tls.key"
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsKeycloakBootstrap }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsKeycloakBootstrap | toYaml | nindent 4 }}
|
||||||
|
|
||||||
podAnnotations:
|
podAnnotations:
|
||||||
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ handler:
|
|||||||
imagePullSecrets: {{ .Values.global.imagePullSecrets }}
|
imagePullSecrets: {{ .Values.global.imagePullSecrets }}
|
||||||
appConfig:
|
appConfig:
|
||||||
captchaProtectionEnable: false
|
captchaProtectionEnable: false
|
||||||
|
deviceProtectionEnable: true
|
||||||
|
ipProtectionEnable: true
|
||||||
|
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
|
||||||
|
newDeviceLoginSubject: "New device login on your {{ .Values.theme.texts.productName }} account"
|
||||||
smtpPassword: {{ .Values.smtp.password | quote }}
|
smtpPassword: {{ .Values.smtp.password | quote }}
|
||||||
smtpHost: {{ .Values.smtp.host | quote }}
|
smtpHost: {{ .Values.smtp.host | quote }}
|
||||||
smtpPort: {{ .Values.smtp.port | quote }}
|
smtpPort: {{ .Values.smtp.port | quote }}
|
||||||
@@ -44,12 +48,15 @@ handler:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsKeycloakExtensionHandler }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsKeycloakExtensionHandler | toYaml | nindent 6 }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 4 }}
|
{{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 4 }}
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: false
|
enabled: false
|
||||||
proxy:
|
proxy:
|
||||||
|
appConfig:
|
||||||
|
logLevel: {{ if .Values.debug.enabled }}"debug"{{ else }}"warn"{{ end }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.umsKeycloakExtensionProxy.registry | quote }}
|
registry: {{ .Values.global.imageRegistry | default .Values.images.umsKeycloakExtensionProxy.registry | quote }}
|
||||||
repository: {{ .Values.images.umsKeycloakExtensionProxy.repository | quote }}
|
repository: {{ .Values.images.umsKeycloakExtensionProxy.repository | quote }}
|
||||||
@@ -71,6 +78,14 @@ proxy:
|
|||||||
path: "/resources"
|
path: "/resources"
|
||||||
- pathType: "Prefix"
|
- pathType: "Prefix"
|
||||||
path: "/fingerprintjs"
|
path: "/fingerprintjs"
|
||||||
|
- pathType: "Exact"
|
||||||
|
path: "/univention/meta.json"
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: "ums-stack-gateway"
|
||||||
|
port:
|
||||||
|
name: "http"
|
||||||
|
|
||||||
enabled: {{ .Values.ingress.enabled }}
|
enabled: {{ .Values.ingress.enabled }}
|
||||||
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
|
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
|
||||||
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
|
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
|
||||||
@@ -89,7 +104,8 @@ proxy:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsKeycloakExtensionProxy }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsKeycloakExtensionProxy | toYaml | nindent 6 }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 4 }}
|
{{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 4 }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ config:
|
|||||||
user: {{ .Values.databases.keycloak.username | quote }}
|
user: {{ .Values.databases.keycloak.username | quote }}
|
||||||
database: {{ .Values.databases.keycloak.name | quote }}
|
database: {{ .Values.databases.keycloak.name | quote }}
|
||||||
password: {{ .Values.databases.keycloak.password | default .Values.secrets.postgresql.keycloakUser | quote }}
|
password: {{ .Values.databases.keycloak.password | default .Values.secrets.postgresql.keycloakUser | quote }}
|
||||||
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
|
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
|
||||||
enableMetrics: true
|
enableMetrics: true
|
||||||
# The availability of the admin console is already restricted through the path settings in the Keycloak Extensions
|
# The availability of the admin console is already restricted through the path settings in the Keycloak Extensions
|
||||||
# Proxy which is used in openDesk. The setting here is just relevant when Keycloak endpoints are exposed directly
|
# Proxy which is used in openDesk. The setting here is just relevant when Keycloak endpoints are exposed directly
|
||||||
@@ -44,7 +44,8 @@ containerSecurityContext:
|
|||||||
runAsUser: 1000
|
runAsUser: 1000
|
||||||
runAsGroup: 1000
|
runAsGroup: 1000
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsKeycloak }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsKeycloak | toYaml | nindent 4 }}
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
fsGroup: 1000
|
fsGroup: 1000
|
||||||
|
|||||||
@@ -45,7 +45,8 @@ containerSecurityContext:
|
|||||||
- "ALL"
|
- "ALL"
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.umsStackGateway }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.umsStackGateway | toYaml | nindent 4 }}
|
||||||
|
|
||||||
service:
|
service:
|
||||||
type: "ClusterIP"
|
type: "ClusterIP"
|
||||||
@@ -280,12 +281,6 @@ serverBlock: |
|
|||||||
proxy_pass http://ums-portal-frontend:80/;
|
proxy_pass http://ums-portal-frontend:80/;
|
||||||
}
|
}
|
||||||
|
|
||||||
## ums-provisioning
|
|
||||||
location /univention/provisioning-api/ {
|
|
||||||
rewrite ^/univention/provisioning-api(/.*)$ $1 break;
|
|
||||||
proxy_pass http://ums-provisioning-events-and-consumer-api:80;
|
|
||||||
}
|
|
||||||
|
|
||||||
## guardian
|
## guardian
|
||||||
location /univention/guardian/management-ui {
|
location /univention/guardian/management-ui {
|
||||||
proxy_pass http://ums-guardian-management-ui:80/univention/guardian/management-ui;
|
proxy_pass http://ums-guardian-management-ui:80/univention/guardian/management-ui;
|
||||||
|
|||||||
@@ -36,7 +36,8 @@ containerSecurityContext:
|
|||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: "RuntimeDefault"
|
type: "RuntimeDefault"
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
seLinuxOptions: {{ .Values.seLinuxOptions.xwiki }}
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.xwiki | toYaml | nindent 4 }}
|
||||||
|
|
||||||
customConfigs:
|
customConfigs:
|
||||||
xwiki.cfg:
|
xwiki.cfg:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,6 @@ debug:
|
|||||||
# should activate debug output in all components and even allow e.g. successfully executed jobs
|
# should activate debug output in all components and even allow e.g. successfully executed jobs
|
||||||
# to stay available. This is going to be implemented on a case by case basis when we actually
|
# to stay available. This is going to be implemented on a case by case basis when we actually
|
||||||
# need debugging in a component.
|
# need debugging in a component.
|
||||||
# Use: `{{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}`
|
# Use: `{{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}`
|
||||||
enabled: false
|
enabled: false
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
global:
|
global:
|
||||||
systemInformation:
|
systemInformation:
|
||||||
releaseVersion: "v0.5.78"
|
releaseVersion: "v0.5.81"
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
## The global properties are used to configure multiple charts at once.
|
## The global properties are used to configure multiple charts at once.
|
||||||
@@ -9,9 +10,7 @@ global:
|
|||||||
hosts:
|
hosts:
|
||||||
collabora: "collabora"
|
collabora: "collabora"
|
||||||
cryptpad: "cryptpad"
|
cryptpad: "cryptpad"
|
||||||
dimension: "integration"
|
|
||||||
element: "chat"
|
element: "chat"
|
||||||
etherpad: "etherpad"
|
|
||||||
intercomService: "ics"
|
intercomService: "ics"
|
||||||
jitsi: "meet"
|
jitsi: "meet"
|
||||||
keycloak: "id"
|
keycloak: "id"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -4,20 +4,28 @@ SPDX-License-Identifier: Apache-2.0
|
|||||||
*/}}
|
*/}}
|
||||||
---
|
---
|
||||||
objectstores:
|
objectstores:
|
||||||
|
nextcloud:
|
||||||
|
bucket: "nextcloud"
|
||||||
|
endpoint: ""
|
||||||
|
region: "eu-west-1"
|
||||||
|
secretKey: ""
|
||||||
|
username: "nextcloud_user"
|
||||||
|
storageClass: "STANDARD"
|
||||||
|
useSSL: true
|
||||||
|
pathStyle: true
|
||||||
|
port: 443
|
||||||
openproject:
|
openproject:
|
||||||
backend: "minio"
|
|
||||||
bucket: "openproject"
|
bucket: "openproject"
|
||||||
endpoint: ""
|
endpoint: ""
|
||||||
region: ""
|
region: "eu-west-1"
|
||||||
secret: ""
|
secretKey: ""
|
||||||
username: "openproject_user"
|
username: "openproject_user"
|
||||||
|
pathStyle: true
|
||||||
useIAMProfile: ""
|
useIAMProfile: ""
|
||||||
univentionManagementStack:
|
univentionManagementStack:
|
||||||
backend: "minio"
|
|
||||||
bucket: "ums"
|
bucket: "ums"
|
||||||
endpoint: ""
|
endpoint: ""
|
||||||
region: ""
|
region: "eu-west-1"
|
||||||
secret: ""
|
secretKey: ""
|
||||||
username: "ums_user"
|
username: "ums_user"
|
||||||
useIAMProfile: ""
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -396,6 +396,13 @@ resources:
|
|||||||
requests:
|
requests:
|
||||||
cpu: 0.1
|
cpu: 0.1
|
||||||
memory: "256Mi"
|
memory: "256Mi"
|
||||||
|
umsLdapServerInit:
|
||||||
|
limits:
|
||||||
|
cpu: 99
|
||||||
|
memory: "1Gi"
|
||||||
|
requests:
|
||||||
|
cpu: 0.1
|
||||||
|
memory: "256Mi"
|
||||||
umsNotificationsApi:
|
umsNotificationsApi:
|
||||||
limits:
|
limits:
|
||||||
cpu: 99
|
cpu: 99
|
||||||
@@ -431,7 +438,35 @@ resources:
|
|||||||
requests:
|
requests:
|
||||||
cpu: 0.1
|
cpu: 0.1
|
||||||
memory: "256Mi"
|
memory: "256Mi"
|
||||||
umsProvisioning:
|
umsProvisioningEventsAndConsumerApi:
|
||||||
|
limits:
|
||||||
|
cpu: 99
|
||||||
|
memory: "1Gi"
|
||||||
|
requests:
|
||||||
|
cpu: 0.1
|
||||||
|
memory: "256Mi"
|
||||||
|
umsProvisioningDispatcher:
|
||||||
|
limits:
|
||||||
|
cpu: 99
|
||||||
|
memory: "1Gi"
|
||||||
|
requests:
|
||||||
|
cpu: 0.1
|
||||||
|
memory: "256Mi"
|
||||||
|
umsProvisioningPrefill:
|
||||||
|
limits:
|
||||||
|
cpu: 99
|
||||||
|
memory: "1Gi"
|
||||||
|
requests:
|
||||||
|
cpu: 0.1
|
||||||
|
memory: "256Mi"
|
||||||
|
umsProvisioningUdmListener:
|
||||||
|
limits:
|
||||||
|
cpu: 99
|
||||||
|
memory: "1Gi"
|
||||||
|
requests:
|
||||||
|
cpu: 0.1
|
||||||
|
memory: "256Mi"
|
||||||
|
umsProvisioningNats:
|
||||||
limits:
|
limits:
|
||||||
cpu: 99
|
cpu: 99
|
||||||
memory: "1Gi"
|
memory: "1Gi"
|
||||||
@@ -473,6 +508,13 @@ resources:
|
|||||||
requests:
|
requests:
|
||||||
cpu: 0.1
|
cpu: 0.1
|
||||||
memory: "256Mi"
|
memory: "256Mi"
|
||||||
|
umsUdmRestApiInit:
|
||||||
|
limits:
|
||||||
|
cpu: 99
|
||||||
|
memory: "1Gi"
|
||||||
|
requests:
|
||||||
|
cpu: 0.1
|
||||||
|
memory: "256Mi"
|
||||||
umsUmcGateway:
|
umsUmcGateway:
|
||||||
limits:
|
limits:
|
||||||
cpu: 99
|
cpu: 99
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{{/*
|
{{/*
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
---
|
---
|
||||||
@@ -29,6 +30,21 @@ secrets:
|
|||||||
storeDavUsers:
|
storeDavUsers:
|
||||||
portalServer: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "portal-server" "store-dav" | sha1sum | quote }}
|
portalServer: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "portal-server" "store-dav" | sha1sum | quote }}
|
||||||
portalListener: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "portal-listener" "store-dav" | sha1sum | quote }}
|
portalListener: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "portal-listener" "store-dav" | sha1sum | quote }}
|
||||||
|
provisioning:
|
||||||
|
apiNatsPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "api" "nats" | sha1sum | quote }}
|
||||||
|
apiAdminNatsPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "apiAdmin" "nats" | sha1sum | quote }}
|
||||||
|
apiAdminPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "api" "admin_api" | sha1sum | quote }}
|
||||||
|
dispatcherPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "dispatcher" "dispatcher_service" | sha1sum | quote }}
|
||||||
|
prefillPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "prefill" "prefill_service" | sha1sum | quote }}
|
||||||
|
prefillNatsPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "prefill" "nats" | sha1sum | quote }}
|
||||||
|
udmProducerPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "udmproducer" "events_api" | sha1sum | quote }}
|
||||||
|
dispatcherNatsPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "dispatcher" "nats" | sha1sum | quote }}
|
||||||
|
dispatcherUdmPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "cn=admin" "udm" | sha1sum | quote }}
|
||||||
|
udmListenerNatsPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "udmlistener" "nats" | sha1sum | quote }}
|
||||||
|
udmPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "cn=admin" "udm" | sha1sum | quote }}
|
||||||
|
nats:
|
||||||
|
natsAdminPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "admin" "nats" | sha1sum | quote }}
|
||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
postgresUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "postgres_user" | sha1sum | quote }}
|
postgresUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "postgres_user" | sha1sum | quote }}
|
||||||
keycloakUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "keycloak_user" | sha1sum | quote }}
|
keycloakUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "postgres" "keycloak_user" | sha1sum | quote }}
|
||||||
@@ -77,10 +93,8 @@ secrets:
|
|||||||
jicofoAuthPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "jistiStandalone" "jicofoAuthPassword" | sha1sum | quote }}
|
jicofoAuthPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "jistiStandalone" "jicofoAuthPassword" | sha1sum | quote }}
|
||||||
jicofoComponentPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "jistiStandalone" "jicofoComponentPassword" | sha1sum | quote }}
|
jicofoComponentPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "jistiStandalone" "jicofoComponentPassword" | sha1sum | quote }}
|
||||||
jvbAuthPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "jistiStandalone" "jvbAuthPassword" | sha1sum | quote }}
|
jvbAuthPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "jistiStandalone" "jvbAuthPassword" | sha1sum | quote }}
|
||||||
etherpad:
|
|
||||||
apiKey: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "etherpad" "apiKey" | sha1sum | quote }}
|
|
||||||
whiteboard:
|
whiteboard:
|
||||||
apiKey: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "etherpad" "apiKey" | sha1sum | quote }}
|
apiKey: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "whiteboard" "apiKey" | sha1sum | quote }}
|
||||||
centralnavigation:
|
centralnavigation:
|
||||||
apiKey: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "centralnavigation" "api_key" | sha1sum | quote }}
|
apiKey: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "centralnavigation" "api_key" | sha1sum | quote }}
|
||||||
redis:
|
redis:
|
||||||
|
|||||||
@@ -7,4 +7,9 @@ security:
|
|||||||
clusterPostfix:
|
clusterPostfix:
|
||||||
enabled: false
|
enabled: false
|
||||||
namespace: ""
|
namespace: ""
|
||||||
|
ingressController:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: "ingress-nginx"
|
||||||
|
namespace: "ingress-nginx"
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
---
|
---
|
||||||
seLinuxOptions:
|
seLinuxOptions:
|
||||||
clamavSimple: ~
|
clamavSimple: ~
|
||||||
|
clamav: ~
|
||||||
clamd: ~
|
clamd: ~
|
||||||
collabora: ~
|
collabora: ~
|
||||||
cryptpad: ~
|
cryptpad: ~
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ intercom:
|
|||||||
enabled: true
|
enabled: true
|
||||||
jitsi:
|
jitsi:
|
||||||
enabled: true
|
enabled: true
|
||||||
keycloak:
|
|
||||||
enabled: true
|
|
||||||
mariadb:
|
mariadb:
|
||||||
enabled: true
|
enabled: true
|
||||||
memcached:
|
memcached:
|
||||||
|
|||||||
Reference in New Issue
Block a user