mirror of
https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk.git
synced 2025-12-06 15:31:38 +01:00
Compare commits
131 Commits
renovate/p
...
acaceres/i
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e5e6bc25c | ||
|
|
7fbc7d68fb | ||
|
|
57a537df3f | ||
|
|
4d05000539 | ||
|
|
7d39434553 | ||
|
|
03b755f9d3 | ||
|
|
1589317755 | ||
|
|
06d5139f3d | ||
|
|
62f384c5b3 | ||
|
|
6d59d1d725 | ||
|
|
fea73c2e85 | ||
|
|
7f6d2a21a9 | ||
|
|
9e0608531b | ||
|
|
2ae0979ab3 | ||
|
|
d1195b7d05 | ||
|
|
6e1a9e7f9a | ||
|
|
1900be18e0 | ||
|
|
9d54fc5c3f | ||
|
|
d4e2effe3b | ||
|
|
833d934aa4 | ||
|
|
89f737d461 | ||
|
|
cbae40a177 | ||
|
|
fc7e8c245d | ||
|
|
c3ae7459aa | ||
|
|
627ea96a43 | ||
|
|
1714a9d00c | ||
|
|
2f0213c527 | ||
|
|
63e010d4cf | ||
|
|
08f68f823e | ||
|
|
1f590c8e8f | ||
|
|
67f9b272b4 | ||
|
|
b698f3d992 | ||
|
|
e2412e675b | ||
|
|
2d282a3fd0 | ||
|
|
7548717e9f | ||
|
|
4c5b20e6f3 | ||
|
|
c90704a1e9 | ||
|
|
ff6cecee6b | ||
|
|
b4a72dadb0 | ||
|
|
9606e4e4d3 | ||
|
|
2bdbe157d0 | ||
|
|
c4dde1dbed | ||
|
|
4c587ab26b | ||
|
|
4eef804c24 | ||
|
|
0d99ce9592 | ||
|
|
cd2e2cd712 | ||
|
|
be41ad9c1f | ||
|
|
81961a246c | ||
|
|
780ca2df11 | ||
|
|
f4b9395b41 | ||
|
|
31753ffb19 | ||
|
|
73455630fd | ||
|
|
5f72da4e57 | ||
|
|
dd80abe622 | ||
|
|
9950b73ae3 | ||
|
|
6b88f731eb | ||
|
|
11ebb80494 | ||
|
|
ade8535c44 | ||
|
|
3d84e804c2 | ||
|
|
8bca56d4ac | ||
|
|
df9380b924 | ||
|
|
7348547d96 | ||
|
|
8ef69ecaf2 | ||
|
|
fa04f88370 | ||
|
|
efc41cb3aa | ||
|
|
370c7cd836 | ||
|
|
ac148d0c28 | ||
|
|
3d441933ca | ||
|
|
b60fe39b5c | ||
|
|
c03566dd63 | ||
|
|
fbe4909a8e | ||
|
|
e1d15e4bc6 | ||
|
|
c63e725525 | ||
|
|
45715a2059 | ||
|
|
3ad81e6b92 | ||
|
|
a395759551 | ||
|
|
8aa1a7fa7d | ||
|
|
ce03400043 | ||
|
|
61d74966d0 | ||
|
|
97f7a1cafd | ||
|
|
49ad36ef4e | ||
|
|
7d0d6ea8d1 | ||
|
|
a46a632616 | ||
|
|
4b99357b21 | ||
|
|
f194f24845 | ||
|
|
be6806f62f | ||
|
|
fd3df7df67 | ||
|
|
6b609edc4a | ||
|
|
63f8394e04 | ||
|
|
74d444e2d6 | ||
|
|
8a2d951c3b | ||
|
|
46412d1a9e | ||
|
|
26a7641a5a | ||
|
|
671f57a809 | ||
|
|
fe923bb9cd | ||
|
|
b4570a9a87 | ||
|
|
1067e725b3 | ||
|
|
dfaf4be640 | ||
|
|
e54aaab072 | ||
|
|
b806d51311 | ||
|
|
db7f5d60bd | ||
|
|
972020f946 | ||
|
|
23ef1d557b | ||
|
|
382af1dfb9 | ||
|
|
7239df2ec1 | ||
|
|
86a328bda1 | ||
|
|
85149086ae | ||
|
|
01c5e6b359 | ||
|
|
a8692d5506 | ||
|
|
1ad35f1e12 | ||
|
|
01767d3806 | ||
|
|
7268f607a5 | ||
|
|
e52343440d | ||
|
|
c03e4a5340 | ||
|
|
c90f7c1742 | ||
|
|
ceb09bee8c | ||
|
|
890b36ecbb | ||
|
|
6ef3641d82 | ||
|
|
45e569955d | ||
|
|
0ce346b162 | ||
|
|
c07b25c4b9 | ||
|
|
e89b16a747 | ||
|
|
064a5ad246 | ||
|
|
d8f3e05e58 | ||
|
|
368fe13ddb | ||
|
|
fcf33825d5 | ||
|
|
b1d0a05a0c | ||
|
|
b0eb28bc3f | ||
|
|
1a811743df | ||
|
|
d7a127fe26 | ||
|
|
e31a0a258e |
13
.gitignore
vendored
13
.gitignore
vendored
@@ -5,8 +5,10 @@
|
|||||||
.yamllint
|
.yamllint
|
||||||
|
|
||||||
# Ignore changes to sample environments
|
# Ignore changes to sample environments
|
||||||
helmfile/environments/dev/values.yaml.gotmpl
|
helmfile/environments/dev/*.yaml.gotmpl
|
||||||
helmfile/environments/prod/values.yaml.gotmpl
|
helmfile/environments/prod/*.yaml.gotmpl
|
||||||
|
!helmfile/environments/dev/sample.yaml.gotmpl
|
||||||
|
!helmfile/environments/prod/sample.yaml.gotmpl
|
||||||
|
|
||||||
# Ignore in CI generated files
|
# Ignore in CI generated files
|
||||||
.kyverno/opendesk.yaml
|
.kyverno/opendesk.yaml
|
||||||
@@ -14,3 +16,10 @@ helmfile/environments/prod/values.yaml.gotmpl
|
|||||||
|
|
||||||
# Ignore editor backup files
|
# Ignore editor backup files
|
||||||
*~
|
*~
|
||||||
|
|
||||||
|
# Ignore ./log directory and *.log files
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Ignore backup files, e.g. created by the script that eases the local chart development
|
||||||
|
*.bak
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
---
|
---
|
||||||
include:
|
include:
|
||||||
- project: "${PROJECT_PATH_GITLAB_CONFIG_TOOLING}"
|
- project: "${PROJECT_PATH_GITLAB_CONFIG_TOOLING}"
|
||||||
ref: "v2.3.2"
|
ref: "v2.3.3"
|
||||||
file:
|
file:
|
||||||
- "ci/common/automr.yml"
|
- "ci/common/automr.yml"
|
||||||
- "ci/common/lint.yml"
|
- "ci/common/lint.yml"
|
||||||
@@ -15,12 +15,16 @@ include:
|
|||||||
ref: "main"
|
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|web|trigger|api'"
|
- if: >
|
||||||
|
$JOB_OPENDESK_LINTER_ENABLED == 'false' ||
|
||||||
|
$CI_PIPELINE_SOURCE =~ 'tags|merge_request_event|web|trigger|api'
|
||||||
when: "never"
|
when: "never"
|
||||||
- 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|web|trigger|api'"
|
- if: >
|
||||||
|
$JOB_OPENDESK_LINTER_ENABLED == 'false' ||
|
||||||
|
$CI_PIPELINE_SOURCE =~ 'tags|merge_request_event|web|trigger|api'
|
||||||
when: "never"
|
when: "never"
|
||||||
- when: "always"
|
- when: "always"
|
||||||
|
|
||||||
@@ -32,9 +36,11 @@ stages:
|
|||||||
- "env-cleanup"
|
- "env-cleanup"
|
||||||
- "env"
|
- "env"
|
||||||
- "pre-services-deploy"
|
- "pre-services-deploy"
|
||||||
|
- "migrations-pre"
|
||||||
- "basic-services-deploy"
|
- "basic-services-deploy"
|
||||||
- "component-deploy-stage-1"
|
- "component-deploy-stage-1"
|
||||||
- "component-deploy-stage-2"
|
- "component-deploy-stage-2"
|
||||||
|
- "migrations-post"
|
||||||
- "lint"
|
- "lint"
|
||||||
- "tests"
|
- "tests"
|
||||||
- "env-stop"
|
- "env-stop"
|
||||||
@@ -73,6 +79,12 @@ variables:
|
|||||||
options:
|
options:
|
||||||
- "yes"
|
- "yes"
|
||||||
- "no"
|
- "no"
|
||||||
|
DEPLOY_MIGRATIONS:
|
||||||
|
description: "Deploy K8s job for migrations (pre & post)."
|
||||||
|
value: "no"
|
||||||
|
options:
|
||||||
|
- "yes"
|
||||||
|
- "no"
|
||||||
DEPLOY_SERVICES:
|
DEPLOY_SERVICES:
|
||||||
description: "Enable Service deployment."
|
description: "Enable Service deployment."
|
||||||
value: "no"
|
value: "no"
|
||||||
@@ -80,7 +92,7 @@ variables:
|
|||||||
- "yes"
|
- "yes"
|
||||||
- "no"
|
- "no"
|
||||||
DEPLOY_UMS:
|
DEPLOY_UMS:
|
||||||
description: "Enable Univention Management Stack deployment."
|
description: "Enable Nubus deployment."
|
||||||
value: "no"
|
value: "no"
|
||||||
options:
|
options:
|
||||||
- "yes"
|
- "yes"
|
||||||
@@ -204,6 +216,7 @@ env-cleanup:
|
|||||||
done
|
done
|
||||||
kubectl delete pvc --all --namespace ${NAMESPACE};
|
kubectl delete pvc --all --namespace ${NAMESPACE};
|
||||||
kubectl delete jobs --all --namespace ${NAMESPACE};
|
kubectl delete jobs --all --namespace ${NAMESPACE};
|
||||||
|
kubectl delete configmaps --all --namespace ${NAMESPACE};
|
||||||
else
|
else
|
||||||
helmfile destroy --namespace ${NAMESPACE};
|
helmfile destroy --namespace ${NAMESPACE};
|
||||||
fi
|
fi
|
||||||
@@ -246,6 +259,30 @@ policies-deploy:
|
|||||||
COMPONENT: "services"
|
COMPONENT: "services"
|
||||||
ADDITIONAL_ARGS: "-l name=opendesk-otterize"
|
ADDITIONAL_ARGS: "-l name=opendesk-otterize"
|
||||||
|
|
||||||
|
migrations-pre:
|
||||||
|
stage: "migrations-pre"
|
||||||
|
extends: ".deploy-common"
|
||||||
|
rules:
|
||||||
|
- if: >
|
||||||
|
$CI_PIPELINE_SOURCE =~ "web|schedules|trigger|api" &&
|
||||||
|
$NAMESPACE =~ /.+/ &&
|
||||||
|
($DEPLOY_ALL_COMPONENTS != "no" || $DEPLOY_MIGRATIONS != "no")
|
||||||
|
when: "on_success"
|
||||||
|
variables:
|
||||||
|
COMPONENT: "migrations-pre"
|
||||||
|
|
||||||
|
migrations-post:
|
||||||
|
stage: "migrations-post"
|
||||||
|
extends: ".deploy-common"
|
||||||
|
rules:
|
||||||
|
- if: >
|
||||||
|
$CI_PIPELINE_SOURCE =~ "web|schedules|trigger|api" &&
|
||||||
|
$NAMESPACE =~ /.+/ &&
|
||||||
|
($DEPLOY_ALL_COMPONENTS != "no" || $DEPLOY_MIGRATIONS != "no")
|
||||||
|
when: "on_success"
|
||||||
|
variables:
|
||||||
|
COMPONENT: "migrations-post"
|
||||||
|
|
||||||
services-deploy:
|
services-deploy:
|
||||||
stage: "basic-services-deploy"
|
stage: "basic-services-deploy"
|
||||||
extends: ".deploy-common"
|
extends: ".deploy-common"
|
||||||
@@ -270,7 +307,7 @@ provisioning-deploy:
|
|||||||
variables:
|
variables:
|
||||||
COMPONENT: "provisioning"
|
COMPONENT: "provisioning"
|
||||||
|
|
||||||
ums-deploy:
|
nubus-deploy:
|
||||||
stage: "component-deploy-stage-1"
|
stage: "component-deploy-stage-1"
|
||||||
extends: ".deploy-common"
|
extends: ".deploy-common"
|
||||||
rules:
|
rules:
|
||||||
@@ -280,7 +317,7 @@ ums-deploy:
|
|||||||
($DEPLOY_ALL_COMPONENTS != "no" || $DEPLOY_UMS != "no")
|
($DEPLOY_ALL_COMPONENTS != "no" || $DEPLOY_UMS != "no")
|
||||||
when: "on_success"
|
when: "on_success"
|
||||||
variables:
|
variables:
|
||||||
COMPONENT: "univention-management-stack"
|
COMPONENT: "nubus"
|
||||||
|
|
||||||
ox-deploy:
|
ox-deploy:
|
||||||
stage: "component-deploy-stage-1"
|
stage: "component-deploy-stage-1"
|
||||||
@@ -424,15 +461,11 @@ env-stop:
|
|||||||
|
|
||||||
.ums-default-password: &ums-default-password
|
.ums-default-password: &ums-default-password
|
||||||
- |
|
- |
|
||||||
UMS_PASSWORDS=$( \
|
|
||||||
kubectl -n ${NAMESPACE} get cm ums-stack-data-swp-data -o jsonpath='{.data.dev-test-users\.yaml}' \
|
|
||||||
| yq '.properties.password' > passwords.txt \
|
|
||||||
)
|
|
||||||
DEFAULT_USER_PASSWORD=$( \
|
DEFAULT_USER_PASSWORD=$( \
|
||||||
awk 'NR==1{print $1}' passwords.txt \
|
kubectl -n ${NAMESPACE} get secret ums-nubus-credentials -o jsonpath='{.data.user_password}' | base64 -d \
|
||||||
)
|
)
|
||||||
DEFAULT_ADMIN_PASSWORD=$(
|
DEFAULT_ADMIN_PASSWORD=$(
|
||||||
awk 'NR==3{print $1}' passwords.txt \
|
kubectl -n ${NAMESPACE} get secret ums-nubus-credentials -o jsonpath='{.data.administrator_password}' | base64 -d \
|
||||||
)
|
)
|
||||||
|
|
||||||
run-tests:
|
run-tests:
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
---
|
---
|
||||||
variables:
|
variables:
|
||||||
OPENDESK_CI_CLI_IMAGE: "registry.opencode.de/bmi/opendesk/tooling/opendesk-ci-cli:2.4.3\
|
OPENDESK_CI_CLI_IMAGE: "registry.opencode.de/bmi/opendesk/tooling/opendesk-ci-cli:2.4.4\
|
||||||
@sha256:4630299fddf4248af1ad04528f0435d78f5b2694a154c99fe72b960260a7be61"
|
@sha256:4120fe717071876f4c9ff128f26019d089fda158a4fb1912911e09af2fd3875f"
|
||||||
OPENDESK_LINT_IMAGE: "registry.opencode.de/bmi/opendesk/components/platform-development/images/ci-lint:1.0.4\
|
OPENDESK_LINT_IMAGE: "registry.opencode.de/bmi/opendesk/components/platform-development/images/ci-lint:1.0.5\
|
||||||
@sha256:386e84e2c85c33537479e4bb1e1fe744c9cce5e87bcb9a3a384dcdc1727c19c0"
|
@sha256:60870adb64b0503d4a6efd16cef4e074b91a4ca52b48811cfcea057bcccd07e4"
|
||||||
|
|
||||||
.common:
|
.common:
|
||||||
cache: {}
|
cache: {}
|
||||||
|
|||||||
@@ -17,12 +17,12 @@ lint-kyverno:
|
|||||||
- "intercom-service"
|
- "intercom-service"
|
||||||
- "jitsi"
|
- "jitsi"
|
||||||
- "nextcloud"
|
- "nextcloud"
|
||||||
|
- "nubus"
|
||||||
- "open-xchange"
|
- "open-xchange"
|
||||||
- "openproject"
|
- "openproject"
|
||||||
- "openproject-bootstrap"
|
- "openproject-bootstrap"
|
||||||
- "provisioning"
|
- "provisioning"
|
||||||
- "services"
|
- "services"
|
||||||
- "univention-management-stack"
|
|
||||||
- "xwiki"
|
- "xwiki"
|
||||||
script:
|
script:
|
||||||
- "cd ${CI_PROJECT_DIR}/helmfile/apps/${APP}"
|
- "cd ${CI_PROJECT_DIR}/helmfile/apps/${APP}"
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ Upstream-Name: openDesk - der Souveräne Arbeitsplatz
|
|||||||
Upstream-Contact: <opendesk@zendis.de>
|
Upstream-Contact: <opendesk@zendis.de>
|
||||||
Source: https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk
|
Source: https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk
|
||||||
|
|
||||||
Files: helmfile/environments/default/theme/*
|
Files: helmfile/files/theme/*
|
||||||
Copyright: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
Copyright: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
|
|
||||||
Files: helmfile/files/gpg-pubkeys/*
|
Files: helmfile/files/gpg-pubkeys/*
|
||||||
|
|||||||
86
CHANGELOG.md
86
CHANGELOG.md
@@ -1,3 +1,89 @@
|
|||||||
|
# [0.9.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.8.1...v0.9.0) (2024-07-24)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **collabora:** Update to 24.04.5.1.1. ([8a2d951](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/8a2d951c3b59c3f8ddb508ad8f95798774b7c4b0))
|
||||||
|
* **collabora:** Update to 24.04.5.1.2. ([74d444e](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/74d444e2d6065082be3ca90373a4d3b1836ea7a8))
|
||||||
|
* **docs:** Update workflow.md. ([fd3df7d](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/fd3df7df6740d8e54b433c039d294843582e8947))
|
||||||
|
* **docu:** Update documentation on integration uses cases ([#95](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/95)). ([382af1d](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/382af1dfb966b5d10da4790212d6422a4a8c5618))
|
||||||
|
* **helmfile:** Add S3 bucket for migrations. ([972020f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/972020f946d8238e65b1c1e2942682c797306e1a))
|
||||||
|
* **helmfile:** Streamline prefixes for customizable defaults. UPGRADES: See `./docs/migrations.md` for more details. ([26a7641](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/26a7641a5ab764196af6bbe26d97907de86f541e))
|
||||||
|
* **jitsi:** Raise memory limit for jicofo and jvb as required by upstream product. ([fe923bb](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/fe923bb9cd58873957adb018c1410d33bb4d8f3a))
|
||||||
|
* **keycloak:** Support for custom OIDC Clients and ClientScopes. ([46412d1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/46412d1a9e4547dea8d0da3e322400ea148edf19))
|
||||||
|
* **nextcloud:** Support templating of default quota and `*_retention_obligation` settings ([#93](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/93)). ([23ef1d5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/23ef1d557bc0fdf6faac59f7a287f1ef1b302404))
|
||||||
|
* **nextcloud:** Update to 28.0.7 including latest apps for 28. ([671f57a](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/671f57a809eb4bb791698cda39f7711ac4833334))
|
||||||
|
* **nextcloud:** Update to 28.0.7 including the apps, fix admin panel warnings ([#94](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/issues/94)). Updated `cluster.networking.cidr` potentially requires manual migration, see `docs/migrations.md` for details. ([63f8394](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/63f8394e044670a89a642e933600b68ff740a102))
|
||||||
|
* **openproject:** Bump to 14.3.0 and update Helm chart to 7.0.0. ([6b609ed](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/6b609edc4a60601ca45372b4fc691f0ac7c9ed93))
|
||||||
|
* **openproject:** Support for adding token to enable OpenProject Premium. ([dfaf4be](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/dfaf4be640209f5908815cceaf29db591212ddaa))
|
||||||
|
* **xwiki:** Add email address mapping to LDAP sync; Fix hostname `null` value in notification links. ([1067e72](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/1067e725b3dabce4ddfeb60b4cbe9e5b4d0db0e5))
|
||||||
|
* **xwiki:** Remove .rtf and .odt export options as they are currently non functional. ([b806d51](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b806d51311c6d406ea3c93842601ddf5dbd13bb3))
|
||||||
|
* **xwiki:** Update to 16.4. ([db7f5d6](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/db7f5d60bdae437cebe58ab10f928a4a348e1ee3))
|
||||||
|
* **xwiki:** Update to 16.4.1. ([e54aaab](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e54aaab072f31713b5172e4bab9ba7e9ca9c5c26))
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **authentication:** Avoid that users can open a app they do not have the appropriate LDAP group set for. Implementation is based on role based client scopes. Introducing also an openDesk migration approach with a pre and post deployment stage. ([b4570a9](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b4570a9a873efa6c896fe543ab0ba3b94fd086c0))
|
||||||
|
|
||||||
|
## [0.8.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.8.0...v0.8.1) (2024-07-01)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **collabora:** Bump image to 24.04.4.1.1. ([368fe13](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/368fe13ddb080f0c8f42cbd3612a29f818308708))
|
||||||
|
* **collabora:** Bump image to 24.04.4.2.1. ([01767d3](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/01767d38061259853e4bd8b2eba31d3b04c4e672))
|
||||||
|
* **docs:** Add Ports section to getting started. ([c07b25c](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c07b25c4b9a702e214373fe08d95827286ebd866))
|
||||||
|
* **docs:** Correction regarding the currently supported ingress controller. ([8514908](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/85149086ae70cb85a1718715747985a3da2a7b64))
|
||||||
|
* **docs:** Update regarding the currently supported ingress controller. ([064a5ad](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/064a5ad246ea7217c2fb107787228d7aca9b5028))
|
||||||
|
* **element:** Provide the internal cluster domain to `synapse-web`. ([a8692d5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/a8692d5506dc65895a562423d8ddb7da9078fc3a))
|
||||||
|
* **helmfile:** Add script to ease local development of platform charts. ([d8f3e05](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d8f3e05e584116f6196d43e0ea9bb8946ab2e5ab))
|
||||||
|
* **helmfile:** Enable SMTP for XWiki and Element/Synapse; Streamline mail sender addresses within platform based on `<localpart>@<component>.<domain>` and allow configuration of `<localpart>`. ([01c5e6b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/01c5e6b359dd5eb42c98e818da301871bea79264))
|
||||||
|
* **helmfile:** Include all `.yaml.gotmpl` files for the envs in `environments.yaml`. ([e523434](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e52343440d81c0596177399058b4711cc0d5da67))
|
||||||
|
* **helmfile:** Streamline `functional.yaml`. *Upgrade notice:* If you set a non default value for `.Values.portal.enableDeploymentInformation` please change it to `.Values.admin.portal.deploymentInformation.enabled` with this version. ([e89b16a](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e89b16a747f95be7661b1fd4f5c90acce638542e))
|
||||||
|
* **jitsi:** Update PatchJVB bitnami/kubectl image to 1.30.2. ([6ef3641](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/6ef3641d82d88d6fed80652b239bc63115abbf2d))
|
||||||
|
* **nubus:** Enable Keycloak's user account console. ([c03e4a5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c03e4a534090dde46363a7cfab718bb307e22621))
|
||||||
|
* **nubus:** Remove doublette ingress annotations. ([890b36e](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/890b36ecbb8c9311b5048d8d6d50ee5acf00ea61))
|
||||||
|
* **open-xchange:** Fixing YAML indentation of updater resources ([0ce346b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/0ce346b162feb0bc6fee7f18caee84917117abe1))
|
||||||
|
* **openproject:** Bump image to 14.2.0. ([1ad35f1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/1ad35f1e12e236607e3830da6d08010eb465b501))
|
||||||
|
* **openproject:** Switch DBInit container image to Alpine based version to reduce footprint. ([c90f7c1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/c90f7c1742d415d5a787ff5832959e2974b77b83))
|
||||||
|
* **openproject:** Update PostgreSQL image for DB init to 16.3. ([45e5699](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/45e569955d09c584490e6826651f7564567c1f9b))
|
||||||
|
* **services:** Allow Postfix "relayHost" to be empty. ([7268f60](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/7268f607a5839c6e940ce07fa15c1ffec9610d19))
|
||||||
|
|
||||||
|
# [0.8.0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.7.1...v0.8.0) (2024-06-10)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **ci:** Allow CI to be triggered by API authorized personal access token. ([b95fd11](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b95fd1152a2122de0fbc2b31cacb8a1b1c5917b7))
|
||||||
|
* **collabora:** Semi-disable update checker. ([d7a127f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d7a127fe269ddf0347adce692f138eb1a6359508))
|
||||||
|
* **collabora:** Update to 24.04.3.1.1. ([5869316](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/58693162e6c2f72ba6254dd0168dea48539b7d43))
|
||||||
|
* **docs:** Spell check and streamline. ([4d99bf3](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/4d99bf3bf085a6f8d4dbdef442fa969150dfff4d))
|
||||||
|
* **element:** Bump container images (widgets, community artifacts). ([f856205](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f856205afce914ea62a9e309b9400714f4c4d040))
|
||||||
|
* **element:** Bump to v1.11.67. ([a4ff89b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/a4ff89b213afef9fd35dd6ab3c54bf0e8e8b20c9))
|
||||||
|
* **element:** Update Synapse. ([9fa8ace](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/9fa8ace80f9af5d5c96073fe836cf606956c4f43))
|
||||||
|
* **helmfile:** Remove unused ox-provisioning hostname. ([e31a0a2](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e31a0a258e274274e20aab41c4c757d891bff639))
|
||||||
|
* **jitsi:** Update jitsi-keycloak-adapter image to Docker tag v20240314. ([6202bc4](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/6202bc4719e96c537c67a65a9419aa183edc6d55))
|
||||||
|
* **nubus:** Change to new Univention upstream registry. ([d7fbc57](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/d7fbc572ca5b3ee4eca31bf50f4e00f257a72b83))
|
||||||
|
* **nubus:** Disable UDM REST API routing by default and always disable UMC local login. ([e1e8a7f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/e1e8a7f121c41c3f23db4541211d255dfb06591a))
|
||||||
|
* **nubus:** Guardian version bump and refactoring. ([2f88752](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/2f88752ae6a9df7ff3cb9a3c2d158589f7defb33))
|
||||||
|
* **nubus:** Re-add selfservice-listener image configuration. ([af711b0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/af711b0edb05bb96fe2ad7e51d5862ed97043178))
|
||||||
|
* **open-xchange:** Set Nubus LDAP attribute to render manager_name in address book. See https://forge.univention.org/bugzilla/show_bug.cgi?id=53741 for reference. ([4f92001](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/4f92001d688416133fcfd3415afb5f4bbceb7356))
|
||||||
|
* **openproject:** Bump library/postgres image to v16. ([742c293](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/742c293243e5c8165e065b5b53af7bac6647fad1))
|
||||||
|
* **openproject:** Bump to 14.1.0, set default timezone on deployment to `Europe/Berlin` and raise default memory limit to 2Gi. ([6e49721](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/6e4972107e8eac498ace98217488f4e07fabb6b1))
|
||||||
|
* **openproject:** Update Helm chart to v5.1.4. ([75cd077](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/75cd077351c0a892afcd57c835b77206ea90da66))
|
||||||
|
* **openproject:** Update to 14.1.1 and bump PostgreSQL 13 image for InitDB. ([bd2d7cf](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/bd2d7cf748f8cb6b1693056c4a5fc4a60b598acd))
|
||||||
|
* **services:** Update `opendesk-home` to v1.0.2 to fix issue with Element `.well-known` ingress collision. ([b0eb28b](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/b0eb28bc3f577a46021444832e0cc132f6e4b0e1))
|
||||||
|
* **univention-management-stack:** Add functional switch to disable deployment information. ([a31c5f5](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/a31c5f59a68e90ba9e80350ebd5827e7b05d4ef5))
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **element:** Enable Matrix federation via https. ([ecb566f](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/ecb566f61e9818ff204501730576af360e4e90d0))
|
||||||
|
* **helmfile:** Add support for Ingress parameter configuration (proxy-body-size, proxy-read-timeout, proxy-send-timeout). ([dc39b94](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/dc39b94e8824683e54e0f2902e8b4bfe1c43442a))
|
||||||
|
* **helmfile:** Create child helmfile for GitOps approach. ([a899699](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/a899699e21b1d8da9886a93a2e74442799e23e96))
|
||||||
|
* **nubus:** Cleanup Keycloak values. ([f3d8cf0](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/commit/f3d8cf08efbba1b1dd5969821c3af7603202e67f))
|
||||||
|
|
||||||
## [0.7.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.7.0...v0.7.1) (2024-05-21)
|
## [0.7.1](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/compare/v0.7.0...v0.7.1) (2024-05-21)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
22
README.md
22
README.md
@@ -28,17 +28,17 @@ openDesk is a Kubernetes based, open-source and cloud-native digital workplace s
|
|||||||
|
|
||||||
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.67](https://github.com/element-hq/element-desktop/releases/tag/v1.11.67) | [For the most recent release](https://element.io/user-guide) |
|
| Chat & collaboration | Element ft. Nordeck widgets | [1.11.67](https://github.com/element-hq/element-desktop/releases/tag/v1.11.67) | [For the most recent release](https://element.io/user-guide) |
|
||||||
| Diagram editor | CryptPad ft. diagrams.net | [5.6.0](https://github.com/cryptpad/cryptpad/releases/tag/5.6.0) | [For the most recent release](https://docs.cryptpad.org/en/) |
|
| Diagram editor | CryptPad ft. diagrams.net | [5.6.0](https://github.com/cryptpad/cryptpad/releases/tag/5.6.0) | [For the most recent release](https://docs.cryptpad.org/en/) |
|
||||||
| File management | Nextcloud | [28.0.5](https://nextcloud.com/de/changelog/#28-0-5) | [Nextcloud 28](https://docs.nextcloud.com/) |
|
| File management | Nextcloud | [28.0.5](https://nextcloud.com/de/changelog/#28-0-5) | [Nextcloud 28](https://docs.nextcloud.com/) |
|
||||||
| Groupware | OX App Suite | [8.23](https://documentation.open-xchange.com/appsuite/releases/8.23/) | Online documentation available from within the installed application; [Additional resources](https://www.open-xchange.com/resources/oxpedia) |
|
| Groupware | OX App Suite | [8.26](https://documentation.open-xchange.com/appsuite/releases/8.26/) | Online documentation available from within the installed application; [Additional resources](https://www.open-xchange.com/resources/oxpedia) |
|
||||||
| Knowledge management | XWiki | [15.10.8](https://www.xwiki.org/xwiki/bin/view/Blog/XWiki15108Released) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) |
|
| Knowledge management | XWiki | [16.4.1](https://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/16.4.1/) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) |
|
||||||
| Portal & IAM | Nubus | Product Preview[^1] | [Univention's documentation website](https://docs.software-univention.de/n/en/index.html) |
|
| Portal & IAM | Nubus | Product Preview[^1] | [Univention's documentation website](https://docs.software-univention.de/n/en/index.html) |
|
||||||
| Project management | OpenProject | [14.1.1](https://www.openproject.org/docs/release-notes/14-1-1/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
|
| Project management | OpenProject | [14.4.1](https://www.openproject.org/docs/release-notes/14-4-1/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
|
||||||
| Videoconferencing | Jitsi | [2.0.9457](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9457) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) |
|
| Videoconferencing | Jitsi | [2.0.9646](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9646) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) |
|
||||||
| Weboffice | Collabora | [24.04.3.1.1](https://www.collaboraoffice.com/collabora-online-24-04-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) |
|
| Weboffice | Collabora | [24.04.7.2](https://www.collaboraoffice.com/code-24-04-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) |
|
||||||
|
|
||||||
While not all components are perfectly shaped for the execution inside containers, one of the project's objectives is to
|
While not all components are perfectly shaped for the execution inside containers, one of the project's objectives is to
|
||||||
align the applications with best practices regarding container design and operations.
|
align the applications with best practices regarding container design and operations.
|
||||||
|
|||||||
16
cspell.json
16
cspell.json
@@ -60,7 +60,21 @@
|
|||||||
"Nordeck",
|
"Nordeck",
|
||||||
"Nubus",
|
"Nubus",
|
||||||
"Souveräne",
|
"Souveräne",
|
||||||
"Arbeitsplatz"
|
"Arbeitsplatz",
|
||||||
|
"commandline",
|
||||||
|
"helmfiles",
|
||||||
|
"SMTPS",
|
||||||
|
"IMAPS",
|
||||||
|
"xwiki",
|
||||||
|
"cryptpad",
|
||||||
|
"clamav",
|
||||||
|
"templating",
|
||||||
|
"localpart",
|
||||||
|
"Addressbooks",
|
||||||
|
"filestore",
|
||||||
|
"trashbin",
|
||||||
|
"bootstrap",
|
||||||
|
"configurability"
|
||||||
],
|
],
|
||||||
"ignoreWords": [],
|
"ignoreWords": [],
|
||||||
"import": []
|
"import": []
|
||||||
|
|||||||
36
dev/README.md
Normal file
36
dev/README.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
|
||||||
|
<h1>Tools for local development</h1>
|
||||||
|
|
||||||
|
* [charts-local.py](#charts-localpy)
|
||||||
|
* [Commandline parameter](#commandline-parameter)
|
||||||
|
* [`--branch`](#--branch)
|
||||||
|
* [`--revert`](#--revert)
|
||||||
|
|
||||||
|
# charts-local.py
|
||||||
|
|
||||||
|
This script helps you on cloning the platform development Helm charts and referencing them directly in the openDesk
|
||||||
|
Helmfile deployment for comfortable local test and development. The charts will be cloned into a directory
|
||||||
|
parallel created next to the `opendesk` repo containing this documentation and the `charts-local.py` script.
|
||||||
|
The name of the chart directory is derived from the branch name you are working with in this `opendesk` repo.
|
||||||
|
|
||||||
|
The script will create `.bak` copies of the helmfiles that have been touched.
|
||||||
|
|
||||||
|
Run the script with `-h` to get information about the script's parameter on commandline.
|
||||||
|
|
||||||
|
## Commandline parameter
|
||||||
|
|
||||||
|
### `--branch`
|
||||||
|
|
||||||
|
Optional parameter: Defines a branch for the `opendesk` repo to work with. The script will create the branch if it
|
||||||
|
does not exist yet. Otherwise it will switch to defined branch.
|
||||||
|
|
||||||
|
If parameter is omitted the current branch of the `opendesk` repo will be used.
|
||||||
|
|
||||||
|
### `--revert`
|
||||||
|
|
||||||
|
Reverts the changes in the helmfiles pointing to the local Helm charts by copying the backup files created by the
|
||||||
|
scripts itself back to their original location.
|
||||||
170
dev/charts-local.py
Executable file
170
dev/charts-local.py
Executable file
@@ -0,0 +1,170 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
import os.path
|
||||||
|
import logging
|
||||||
|
import yaml
|
||||||
|
import sys
|
||||||
|
import shutil
|
||||||
|
import re
|
||||||
|
import configargparse
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
from git import Repo
|
||||||
|
|
||||||
|
p = configargparse.ArgParser()
|
||||||
|
p.add('--branch', env_var='CHART_DEV_BRANCH', help='The branch you want to work with. Will be created by the script if it does not exist yet.')
|
||||||
|
p.add('--git_hostname', env_var='GIT_HOSTNAME', default='git@gitlab.opencode.de', help='Set the hostname for the chart git checkouts.')
|
||||||
|
p.add('--revert', default=False, action='store_true', help='Set this parameter if you want to revert the referencing of the local helm chart checkout paths in the helmfiles.')
|
||||||
|
p.add('--loglevel', env_var='LOGLEVEL', default='DEBUG', help='Set the loglevel: DEBUG, INFO, WARNING, ERROR, CRITICAL-')
|
||||||
|
options = p.parse_args()
|
||||||
|
|
||||||
|
script_path = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
# some static definitions
|
||||||
|
log_path = script_path+'/../logs'
|
||||||
|
charts_yaml = script_path+'/../helmfile/environments/default/charts.yaml'
|
||||||
|
base_repo_path = script_path+'/..'
|
||||||
|
base_helmfile = base_repo_path+'/helmfile_generic.yaml'
|
||||||
|
helmfile_backup_extension = '.bak'
|
||||||
|
|
||||||
|
Path(log_path).mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
logFormatter = logging.Formatter("%(asctime)s %(levelname)-5.5s %(message)s")
|
||||||
|
rootLogger = logging.getLogger()
|
||||||
|
rootLogger.setLevel(options.loglevel)
|
||||||
|
|
||||||
|
fileHandler = logging.FileHandler("{0}/{1}.log".format(log_path, os.path.basename(__file__)))
|
||||||
|
fileHandler.setFormatter(logFormatter)
|
||||||
|
rootLogger.addHandler(fileHandler)
|
||||||
|
|
||||||
|
consoleHandler = logging.StreamHandler()
|
||||||
|
consoleHandler.setFormatter(logFormatter)
|
||||||
|
rootLogger.addHandler(consoleHandler)
|
||||||
|
|
||||||
|
logging.debug(f"Working with relative paths from script location: {script_path}")
|
||||||
|
logging.debug(f"Log directory: {log_path}")
|
||||||
|
logging.debug(f"charts.yaml : {charts_yaml}")
|
||||||
|
|
||||||
|
|
||||||
|
def create_or_switch_branch_base_repo():
|
||||||
|
base_repo = Repo(path=base_repo_path)
|
||||||
|
current_branch = base_repo.active_branch.name
|
||||||
|
if not options.branch:
|
||||||
|
branch = current_branch
|
||||||
|
logging.debug(f"No branch specified on commandline, working with current branch: {current_branch}")
|
||||||
|
else:
|
||||||
|
branch = options.branch
|
||||||
|
if branch in base_repo.branches:
|
||||||
|
if branch != current_branch:
|
||||||
|
logging.debug(f"Selected {branch} already exists, switching.")
|
||||||
|
# ToDo: Graceful handle: "Please commit your changes or stash them before you switch branches."
|
||||||
|
base_repo.git.switch(branch)
|
||||||
|
else:
|
||||||
|
logging.debug(f"Already on selected brach {branch}")
|
||||||
|
else:
|
||||||
|
logging.debug(f"Creating branch {branch} and switching")
|
||||||
|
base_repo.git.branch(branch)
|
||||||
|
base_repo.git.switch(branch)
|
||||||
|
return branch
|
||||||
|
|
||||||
|
|
||||||
|
def clone_charts_locally(branch, charts):
|
||||||
|
charts_clone_path = script_path+'/../../'+branch.replace('/', '_')
|
||||||
|
charts_dict = {}
|
||||||
|
doublette_dict = {}
|
||||||
|
if os.path.isdir(charts_clone_path):
|
||||||
|
logging.warning(f"Path {charts_clone_path} already exists, will not clone any charts.")
|
||||||
|
else:
|
||||||
|
logging.debug(f"creating directory {charts_clone_path} to clone charts into")
|
||||||
|
Path(charts_clone_path).mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
|
for chart in charts['charts']:
|
||||||
|
if 'opendesk/components/platform-development/charts' in charts['charts'][chart]['repository']:
|
||||||
|
tag = charts['charts'][chart]['version']
|
||||||
|
logging.debug(f"Working on {chart} / tag {tag}")
|
||||||
|
repository = charts['charts'][chart]['repository']
|
||||||
|
git_url = options.git_hostname+':'+repository
|
||||||
|
chart_repo_path = charts_clone_path+'/'+charts['charts'][chart]['name']
|
||||||
|
if git_url in doublette_dict:
|
||||||
|
logging.debug(f"{chart} located at {git_url} is already checked out to {doublette_dict[git_url]}")
|
||||||
|
charts_dict[chart] = doublette_dict[git_url]
|
||||||
|
else:
|
||||||
|
if os.path.isdir(chart_repo_path):
|
||||||
|
logging.debug(f"Already exists {chart_repo_path} leaving it unmodified")
|
||||||
|
else:
|
||||||
|
logging.debug(f"Cloning into {chart_repo_path}")
|
||||||
|
Repo.clone_from(git_url, chart_repo_path)
|
||||||
|
chart_repo = Repo(path=chart_repo_path)
|
||||||
|
chart_repo.git.checkout('v'+charts['charts'][chart]['version'])
|
||||||
|
doublette_dict[git_url] = chart_repo_path
|
||||||
|
charts_dict[chart] = chart_repo_path
|
||||||
|
return charts_dict
|
||||||
|
|
||||||
|
|
||||||
|
def grep_yaml(file):
|
||||||
|
with open(file, 'r') as file:
|
||||||
|
content = ''
|
||||||
|
for line in file.readlines():
|
||||||
|
if not ': {{' in line and not '- {{' in line:
|
||||||
|
content += line
|
||||||
|
return yaml.safe_load(content)
|
||||||
|
|
||||||
|
|
||||||
|
def get_child_helmfiles():
|
||||||
|
child_helmfiles = []
|
||||||
|
root_helmfile = grep_yaml(base_helmfile)
|
||||||
|
for entry in root_helmfile['helmfiles']:
|
||||||
|
child_helmfiles.append(base_repo_path+'/'+entry['path'])
|
||||||
|
return child_helmfiles
|
||||||
|
|
||||||
|
|
||||||
|
def process_the_helmfiles(charts_dict, charts):
|
||||||
|
chart_def_prefix = ' chart: "'
|
||||||
|
child_helmfiles = get_child_helmfiles()
|
||||||
|
for child_helmfile in child_helmfiles:
|
||||||
|
child_helmfile_updated = False
|
||||||
|
output = []
|
||||||
|
with open(child_helmfile, 'r') as file:
|
||||||
|
for line in file:
|
||||||
|
if chart_def_prefix in line:
|
||||||
|
for chart_ident in charts_dict:
|
||||||
|
if '.Values.charts.'+chart_ident+'.name' in line:
|
||||||
|
logging.debug(f"found match with {chart_ident} in {line.strip()}")
|
||||||
|
line = chart_def_prefix+charts_dict[chart_ident]+'/charts/'+charts['charts'][chart_ident]['name']+'" # replaced by local-dev script'+"\n"
|
||||||
|
child_helmfile_updated = True
|
||||||
|
break
|
||||||
|
output.append(line)
|
||||||
|
if child_helmfile_updated:
|
||||||
|
child_helmfile_backup = child_helmfile+helmfile_backup_extension
|
||||||
|
if os.path.isfile(child_helmfile_backup):
|
||||||
|
logging.debug("backup {child_helmfile_backup} already exists, will not create a new one.")
|
||||||
|
else:
|
||||||
|
logging.debug(f"creating backup {child_helmfile_backup}.")
|
||||||
|
shutil.copy2(child_helmfile, child_helmfile_backup)
|
||||||
|
logging.debug(f"Updating {child_helmfile}")
|
||||||
|
with open(child_helmfile, 'w') as file:
|
||||||
|
file.writelines(output)
|
||||||
|
|
||||||
|
|
||||||
|
def revert_the_helmfiles():
|
||||||
|
child_helmfiles = get_child_helmfiles()
|
||||||
|
for child_helmfile in child_helmfiles:
|
||||||
|
child_helmfile_backup = child_helmfile+helmfile_backup_extension
|
||||||
|
if os.path.isfile(child_helmfile_backup):
|
||||||
|
logging.debug(f"Reverting {child_helmfile} from backup {child_helmfile_backup}")
|
||||||
|
os.rename(child_helmfile_backup, child_helmfile)
|
||||||
|
else:
|
||||||
|
logging.debug(f"Did not found the backup file {child_helmfile_backup}")
|
||||||
|
|
||||||
|
##
|
||||||
|
## Main program
|
||||||
|
##
|
||||||
|
if options.revert:
|
||||||
|
revert_the_helmfiles()
|
||||||
|
else:
|
||||||
|
branch = create_or_switch_branch_base_repo()
|
||||||
|
with open(charts_yaml, 'r') as file:
|
||||||
|
charts = yaml.safe_load(file)
|
||||||
|
charts_dict = clone_charts_locally(branch, charts)
|
||||||
|
process_the_helmfiles(charts_dict, charts)
|
||||||
6
dev/requirements.txt
Normal file
6
dev/requirements.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
configargparse
|
||||||
|
pyyaml
|
||||||
|
GitPython
|
||||||
@@ -10,11 +10,11 @@ This section covers the internal system requirements as well as external service
|
|||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
* [Overview](#overview)
|
* [Overview](#overview)
|
||||||
* [Component integration](#component-integration)
|
* [Component integration](#component-integration)
|
||||||
* [Intercom Service (ICS)](#intercom-service-ics)
|
* [Intercom Service / Silent Login](#intercom-service--silent-login)
|
||||||
* [Filepicker](#filepicker)
|
* [Filepicker](#filepicker)
|
||||||
* [Central Navigation](#central-navigation)
|
* [Central Navigation](#central-navigation)
|
||||||
* [(Read \& write) Central contacts](#read--write-central-contacts)
|
* [Central Contacts](#central-contacts)
|
||||||
* [OpenProject file store](#openproject-file-store)
|
* [File Store (OpenProject -\> Nextcloud)](#file-store-openproject---nextcloud)
|
||||||
* [Identity data flows](#identity-data-flows)
|
* [Identity data flows](#identity-data-flows)
|
||||||
* [Provisioning](#provisioning)
|
* [Provisioning](#provisioning)
|
||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
@@ -33,6 +33,7 @@ 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 |
|
||||||
|
| dkimpy-milter | DKIM milter for Postfix | Eval |
|
||||||
| 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 |
|
||||||
@@ -56,58 +57,91 @@ Some use cases require inter component integration.
|
|||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
flowchart TD
|
flowchart TD
|
||||||
OXAppSuiteFrontend-->|SilentLogin, Filepicker, CentralNavigation|IntercomService
|
OX-AppSuite_Frontend-->|Silent Login, Filepicker, Central Navigation|Intercom_Service
|
||||||
Element-->|CentralNavigation|IntercomService
|
Element-->|Silent Login, Central Navigation|Intercom_Service
|
||||||
IntercomService-->|SilentLogin, TokenExchange|IdP
|
Intercom_Service-->|Silent Login, Token Exchange|IdP
|
||||||
IntercomService-->|Filepicker|Nextcloud
|
Intercom_Service-->|Filepicker|Nextcloud
|
||||||
IntercomService-->|CentralNavigation|Portal
|
Intercom_Service-->|Central Navigation|Portal
|
||||||
OXAppSuiteBackend-->|Filepicker|Nextcloud
|
OX-AppSuite_Backend-->|Filepicker|Nextcloud
|
||||||
Nextcloud-->|CentralNavigation|Portal
|
Nextcloud-->|Central Navigation|Portal
|
||||||
OpenProject-->|CentralNavigation|Portal
|
OpenProject-->|Central Navigation|Portal
|
||||||
OpenProject-->|File store|Nextcloud
|
OpenProject-->|File Store|Nextcloud
|
||||||
XWiki-->|CentralNavigation|Portal
|
XWiki-->|Central Navigation|Portal
|
||||||
Nextcloud-->|CentralContacts|OXAppSuiteBackend
|
Nextcloud-->|Central Contacts|OX-AppSuite_Backend
|
||||||
OXAppSuiteFrontend-->|Filepicker|OXAppSuiteBackend
|
OX-AppSuite_Frontend-->|Filepicker|OX-AppSuite_Backend
|
||||||
```
|
```
|
||||||
|
|
||||||
## Intercom Service (ICS)
|
Most details can be found in the upstream documentation that is linked in the respective sections.
|
||||||
|
|
||||||
The Univention Intercom Service's role is to enable cross-application integration based on browser interaction.
|
## Intercom Service / Silent Login
|
||||||
Handling authentication when the frontend of an application is using the API from another application is often a
|
|
||||||
|
The Intercom Service's role is to enable cross-application integration based on the user's browser interaction as handling
|
||||||
|
authentication when the frontend of an application has to call 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).
|
|
||||||
|
|
||||||
To establish a session with the Intercom Service, the application that wants to use the ICS must initiate a silent
|
To establish a session with the Intercom Service an application can use the silent login feature within an iframe.
|
||||||
login.
|
|
||||||
|
|
||||||
Currently only OX AppSuite is using the frontend-based integration, and therefore it is right now the only consumer of
|
Currently only OX AppSuite and Element are using the frontend based integration.
|
||||||
the ICS API.
|
|
||||||
|
**Links**
|
||||||
|
- [Intercom Service upstream documentation](https://docs.software-univention.de/intercom-service/latest/index.html).
|
||||||
|
|
||||||
## Filepicker
|
## Filepicker
|
||||||
|
|
||||||
The Nextcloud filepicker which is integrated into the OX AppSuite allows you to add attachments or links to files from
|
The Nextcloud filepicker is integrated into the OX AppSuite supporting the following use cases against the respective openDesk instance's Nextcloud:
|
||||||
and saving attachments to Nextcloud.
|
- Attaching files from Nextcloud to emails.
|
||||||
|
- Adding links of Nextcloud files to emails.
|
||||||
|
- Saving attachments from emails into Nextcloud.
|
||||||
|
- Attaching files from Nextcloud to calendar entries.
|
||||||
|
|
||||||
The filepicker is using frontend and backend based integration.
|
The filepicker is using frontend and backend based integration:
|
||||||
Frontend-based integration means that OX AppSuite in the browser is communicating with ICS.
|
- For frontend based integration the OX AppSuite frontend uses the Intercom Service.
|
||||||
While using backend-based integration, OX AppSuite middleware is communicating with Nextcloud, which is especially used
|
- Backend based integration is coming from OX AppSuite middleware. The middleware is communicating directly with Nextcloud,
|
||||||
when adding a file to an email or storing a file into Nextcloud.
|
which is used when adding a file to an email or storing a file into Nextcloud, to avoid passing these files through the user's browser.
|
||||||
|
|
||||||
|
**Links**
|
||||||
|
- [OX AppSuite Nextcloud Integration upstream documentation](https://gitlab.open-xchange.com/extensions/nextcloud-integration/-/tree/main/documentation).
|
||||||
|
|
||||||
## Central Navigation
|
## Central Navigation
|
||||||
|
|
||||||
Central navigation is based on an API endpoint in the portal that provides the contents of the portal for a user to
|
Central navigation is based on an API endpoint in the Nubus portal that returns a JSON containing the contents of the portal for
|
||||||
allow components to render the menu showing all available SWP applications for the user.
|
a given user. The response from the API endpoint is used in the openDesk applications to render the central navigation.
|
||||||
|
|
||||||
## (Read & write) Central contacts
|
The API can be called by
|
||||||
|
- frontend services through the Intercom Service's `/navigation.json` endpoint or
|
||||||
|
- backend services directly at the portal's `/univention/portal/navigation.json` endpoint.
|
||||||
|
|
||||||
Open-Xchange App Suite is used to manage contacts within openDesk. There is an API in the AppSuite that is being used by
|
The central navigation expects the API caller to present a shared secret for authentication and the username for whom the portal
|
||||||
Nextcloud to lookup contacts as well as to create contacts. This is maybe done when a file is shared with a not yet
|
contents should be returned for.
|
||||||
available personal contact.
|
|
||||||
|
|
||||||
## OpenProject file store
|
A `curl` based request returning the navigation contents looks like this:
|
||||||
|
|
||||||
By default, Nextcloud is a configured option for storing attachments in OpenProject.
|
```
|
||||||
The file store can be enabled on a per-project level in OpenProject's project admin section.
|
curl 'https://portal.<DOMAIN>/univention/portal/navigation.json?base=https%3A//portal.<DOMAIN>&language=de-DE' -u "<USERNAME>:<SHARED_SECRET>"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Central Contacts
|
||||||
|
|
||||||
|
OX App Suite is managing contacts in openDesk. Therefore Nextcloud's PHP backend is using the OX AppSuite's middleware Contacts API to
|
||||||
|
- create a new contact in the user's contacts folder when a file is shared with a yet unknown email address.
|
||||||
|
- retrieve contacts from the user's contacts folder to support search-as-you-type when starting to share a file.
|
||||||
|
|
||||||
|
**Links:**
|
||||||
|
- Currently used [OX Contacts API (deprecated)](https://documentation.open-xchange.com/components/middleware/http/8/index.html#!Contacts).
|
||||||
|
- New [OX Addressbooks API](https://documentation.open-xchange.com/components/middleware/http/8/index.html#!Addressbooks) the Central Contacts integration will switch to.
|
||||||
|
|
||||||
|
## File Store (OpenProject -> Nextcloud)
|
||||||
|
|
||||||
|
While OpenProject allows you to attach files to work packages directly, it is often preferred that the files are
|
||||||
|
stored within Nextcloud or to link an existing file from your openDesk Nextcloud to a work package.
|
||||||
|
|
||||||
|
Therefore openDesk pre-configures the trust between the openDesk instance's OpenProject and Nextcloud during the `openproject-boostrap` deployment step. As prerequisite for that openDesk's Nextcloud contains the `integration_openproject` app.
|
||||||
|
|
||||||
|
The file store still needs to be enabled on a per-project level in OpenProject's project admin section.
|
||||||
|
|
||||||
|
**Links:**
|
||||||
|
- [OpenProject's documentation on Nextcloud integration](https://www.openproject.org/docs/system-admin-guide/integrations/nextcloud/)
|
||||||
|
- [OpenProject Integration Nextcloud app](https://apps.nextcloud.com/apps/integration_openproject)
|
||||||
|
|
||||||
# Identity data flows
|
# Identity data flows
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ Below you will find some wrap-up notes when it comes to debugging openDesk by ad
|
|||||||
|
|
||||||
You can add a container by editing and updating an existing deployment, which is quite comfortable with tools like [Lens](https://k8slens.dev/).
|
You can add a container by editing and updating an existing deployment, which is quite comfortable with tools like [Lens](https://k8slens.dev/).
|
||||||
|
|
||||||
- Select the container you want to make use of as debugging container, in the example below it's `registry.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-debugging-image:1.0.0`.
|
- Select the container you want to make use of as debugging container, in the example below it is `registry.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-debugging-image:latest`.
|
||||||
- Ensure the `shareProcessNamespace` option is enabled for the Pod.
|
- Ensure the `shareProcessNamespace` option is enabled for the Pod.
|
||||||
- Reference the selected container within the `containers` array of the deployment.
|
- Reference the selected container within the `containers` array of the deployment.
|
||||||
- In case you want to access another containers filesystem, ensure the user/group settings of both containers match.
|
- In case you want to access another containers filesystem, ensure the user/group settings of both containers match.
|
||||||
@@ -64,7 +64,7 @@ The following example can e.g. be used to debug the `openDesk-Nextcloud-PHP` con
|
|||||||
shareProcessNamespace: true
|
shareProcessNamespace: true
|
||||||
containers:
|
containers:
|
||||||
- name: debugging
|
- name: debugging
|
||||||
image: registry.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-debugging-image:1.0.0
|
image: registry.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-debugging-image:latest
|
||||||
command: ["/bin/bash", "-c", "while true; do echo 'This is a temporary container for debugging'; sleep 5 ; done"]
|
command: ["/bin/bash", "-c", "while true; do echo 'This is a temporary container for debugging'; sleep 5 ; done"]
|
||||||
securityContext:
|
securityContext:
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -121,7 +121,7 @@ Now you can add the ephemeral container with:
|
|||||||
```
|
```
|
||||||
kubectl -n ${NAMESPACE} debug -it --attach=false -c ${EPH_CONTAINER_NAME} --image={DEBUG_IMAGE} ${POD_NAME}
|
kubectl -n ${NAMESPACE} debug -it --attach=false -c ${EPH_CONTAINER_NAME} --image={DEBUG_IMAGE} ${POD_NAME}
|
||||||
```
|
```
|
||||||
and open it's interactive terminal with
|
and open its interactive terminal with
|
||||||
```
|
```
|
||||||
kubectl -n ${NAMESPACE} attach -it -c ${EPH_CONTAINER_NAME} ${POD_NAME}
|
kubectl -n ${NAMESPACE} attach -it -c ${EPH_CONTAINER_NAME} ${POD_NAME}
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -44,9 +44,9 @@ We will provide additional documents regarding user provisioning in the future,
|
|||||||
- UDM REST API:
|
- UDM REST API:
|
||||||
- Build a provisioning solution by yourself using the [UDM REST API](https://docs.software-univention.de/developer-reference/5.0/en/udm/rest-api.html).
|
- Build a provisioning solution by yourself using the [UDM REST API](https://docs.software-univention.de/developer-reference/5.0/en/udm/rest-api.html).
|
||||||
- The API gives you full control over the contents of the IAM in order to create, update or delete users and groups.
|
- The API gives you full control over the contents of the IAM in order to create, update or delete users and groups.
|
||||||
- Directory Connector:
|
- Nubus Directory Importer:
|
||||||
- It is based on a Python one-way directory synchronization for users and groups.
|
- It is based on a Python one-way directory synchronization for users and groups.
|
||||||
- We will provide more details on this approach soon one the tool is made publicly available.
|
- Please find more details in the [upstream product's documentation](https://docs.software-univention.de/nubus-kubernetes-operation/latest/en/howto-connect-external-iam.html).
|
||||||
- Ad-hoc provisioning (AHP)
|
- Ad-hoc provisioning (AHP)
|
||||||
- This feature is currently not available in the openDesk Keycloak, but there are plans by the Supplier Univention to make it available.
|
- This feature is currently not available in the openDesk Keycloak, but there are plans by the Supplier Univention to make it available.
|
||||||
- Ad-hoc provisioning creates an user account on the fly during a users first login.
|
- Ad-hoc provisioning creates an user account on the fly during a users first login.
|
||||||
@@ -146,8 +146,8 @@ The following configuration is taking place in the Keycloak realm `opendesk`.
|
|||||||
- *Client ID*: Use the client ID you took form your organization's IdP config (`opendesk-federation-client` in this example)
|
- *Client ID*: Use the client ID you took form your organization's IdP config (`opendesk-federation-client` in this example)
|
||||||
- *Client Secret*: Use the secret you took form your organization's IdP config
|
- *Client Secret*: Use the secret you took form your organization's IdP config
|
||||||
- When completed with *Add* you get to the detailed IdP configured that also needs some updates (you may need to open the *Advanced* section to access some settings)
|
- When completed with *Add* you get to the detailed IdP configured that also needs some updates (you may need to open the *Advanced* section to access some settings)
|
||||||
- *Back-channel logout*: `On`
|
- *Back-channel logout*: `On`
|
||||||
- *Disable user info*: `On`
|
- *Disable user info*: `On`
|
||||||
- *First login flow override*: `auto-federate-flow`
|
- *First login flow override*: `auto-federate-flow`
|
||||||
|
|
||||||
- In case you want to forcefully redirect all users to your organizations IdP (disabling login with local openDesk accounts):
|
- In case you want to forcefully redirect all users to your organizations IdP (disabling login with local openDesk accounts):
|
||||||
|
|||||||
@@ -37,10 +37,11 @@ If not used it is also set to `opendesk.domain.tld`.
|
|||||||
The following setting can disable federation:
|
The following setting can disable federation:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
externalServices:
|
functional:
|
||||||
matrix:
|
externalServices:
|
||||||
federation:
|
matrix:
|
||||||
enabled: false
|
federation:
|
||||||
|
enabled: false
|
||||||
```
|
```
|
||||||
|
|
||||||
## Separate Matrix domain
|
## Separate Matrix domain
|
||||||
|
|||||||
@@ -9,6 +9,10 @@ SPDX-License-Identifier: Apache-2.0
|
|||||||
* [Example configuration](#example-configuration)
|
* [Example configuration](#example-configuration)
|
||||||
* [Mail domain](#mail-domain)
|
* [Mail domain](#mail-domain)
|
||||||
* [Matrix domain](#matrix-domain)
|
* [Matrix domain](#matrix-domain)
|
||||||
|
* [DNS](#dns)
|
||||||
|
* [Webserver](#webserver)
|
||||||
|
* [Content Security Policy](#content-security-policy)
|
||||||
|
* [.well-known](#well-known)
|
||||||
|
|
||||||
# Use case
|
# Use case
|
||||||
|
|
||||||
@@ -59,7 +63,9 @@ or via environment variable
|
|||||||
export MATRIX_DOMAIN=my_organization.tld
|
export MATRIX_DOMAIN=my_organization.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
This setup requires also a different DNS setup:
|
### DNS
|
||||||
|
|
||||||
|
The following changes apply to the standard DNS:
|
||||||
|
|
||||||
| Record name | Type | Value | Comment |
|
| Record name | Type | Value | Comment |
|
||||||
| -------------------------------- | ---- | -------------------------------------- | ---------------------------------------------------------------------------------- |
|
| -------------------------------- | ---- | -------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||||
@@ -67,6 +73,14 @@ This setup requires also a different DNS setup:
|
|||||||
|
|
||||||
*Note:* `matrix.opendesk.domain.tld` in the "Value" column can also be the IP address where synapse TLS port is listening to.
|
*Note:* `matrix.opendesk.domain.tld` in the "Value" column can also be the IP address where synapse TLS port is listening to.
|
||||||
|
|
||||||
|
### Webserver
|
||||||
|
|
||||||
|
#### Content Security Policy
|
||||||
|
|
||||||
|
The webserver of `my_organization.tld` should add `*.opendesk.domain.tld` to its CSP header.
|
||||||
|
|
||||||
|
#### .well-known
|
||||||
|
|
||||||
If you want to use other Matrix clients,
|
If you want to use other Matrix clients,
|
||||||
e.g., Element Messenger for [iOS](https://apps.apple.com/de/app/element-messenger/id1083446067)
|
e.g., Element Messenger for [iOS](https://apps.apple.com/de/app/element-messenger/id1083446067)
|
||||||
or [Android](https://play.google.com/store/apps/details?id=im.vector.app),
|
or [Android](https://play.google.com/store/apps/details?id=im.vector.app),
|
||||||
@@ -82,4 +96,4 @@ you need to create a JSON file with the following contents that is served from
|
|||||||
```
|
```
|
||||||
|
|
||||||
This ensures clients know where to find the Matrix protocol endpoint when users specify `my_organization.tld`
|
This ensures clients know where to find the Matrix protocol endpoint when users specify `my_organization.tld`
|
||||||
as their homeserver.
|
as their homeserver.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG Ze
|
|||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<h1>Getting stated</h1>
|
<h1>Getting started</h1>
|
||||||
|
|
||||||
This documentation should enable you to create your own evaluation instance of openDesk on your Kubernetes cluster.
|
This documentation should enable you to create your own evaluation instance of openDesk on your Kubernetes cluster.
|
||||||
|
|
||||||
@@ -21,6 +21,9 @@ This documentation should enable you to create your own evaluation instance of o
|
|||||||
* [Container runtime](#container-runtime)
|
* [Container runtime](#container-runtime)
|
||||||
* [Volumes](#volumes)
|
* [Volumes](#volumes)
|
||||||
* [Connectivity](#connectivity)
|
* [Connectivity](#connectivity)
|
||||||
|
* [Ports](#ports)
|
||||||
|
* [Web based user interface](#web-based-user-interface)
|
||||||
|
* [Mail clients](#mail-clients)
|
||||||
* [Mail/SMTP configuration](#mailsmtp-configuration)
|
* [Mail/SMTP configuration](#mailsmtp-configuration)
|
||||||
* [TURN configuration](#turn-configuration)
|
* [TURN configuration](#turn-configuration)
|
||||||
* [Certificate issuer](#certificate-issuer)
|
* [Certificate issuer](#certificate-issuer)
|
||||||
@@ -29,6 +32,7 @@ This documentation should enable you to create your own evaluation instance of o
|
|||||||
* [Install single app](#install-single-app)
|
* [Install single app](#install-single-app)
|
||||||
* [Install single release/chart](#install-single-releasechart)
|
* [Install single release/chart](#install-single-releasechart)
|
||||||
* [Access deployment](#access-deployment)
|
* [Access deployment](#access-deployment)
|
||||||
|
* [Using from external repository](#using-from-external-repository)
|
||||||
* [Uninstall](#uninstall)
|
* [Uninstall](#uninstall)
|
||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
|
|
||||||
@@ -48,7 +52,7 @@ files.
|
|||||||
> All configuration options and their default values can be found in files at `helmfile/environments/default/`
|
> All configuration options and their default values can be found in files at `helmfile/environments/default/`
|
||||||
|
|
||||||
For the following guide, we will use `dev` as environment, where variables can be set in
|
For the following guide, we will use `dev` as environment, where variables can be set in
|
||||||
`helmfile/environments/dev/values.yaml`.
|
`helmfile/environments/dev/values.yaml.gotmpl`.
|
||||||
|
|
||||||
## DNS
|
## DNS
|
||||||
|
|
||||||
@@ -56,16 +60,16 @@ The deployment is designed to deploy each application/service under a dedicated
|
|||||||
For your convenience, we recommend to create a `*.domain.tld` A-Record to your cluster ingress controller,
|
For your convenience, we recommend to create a `*.domain.tld` A-Record to your cluster ingress controller,
|
||||||
otherwise you need to create an A-Record for each subdomain.
|
otherwise you need to create an A-Record for each subdomain.
|
||||||
|
|
||||||
| Record name | Type | Value | Additional information |
|
| Record name | Type | Value | Additional information |
|
||||||
| ----------------------- | ---- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
|
|-------------------------------|------|----------------------------------------------------|------------------------------------------------------------------|
|
||||||
| *.domain.tld | A | IPv4 address of your Ingress Controller | |
|
| *.domain.tld | A | IPv4 address of your Ingress Controller | |
|
||||||
| *.domain.tld | AAAA | IPv6 address of your Ingress Controller | |
|
| *.domain.tld | AAAA | IPv6 address of your Ingress Controller | |
|
||||||
| mail.domain.tld | A | IPv4 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
|
| mail.domain.tld | A | IPv4 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
|
||||||
| mail.domain.tld | AAAA | IPv6 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
|
| mail.domain.tld | AAAA | IPv6 address of your postfix NodePort/LoadBalancer | Optional mail should directly be delivered to openDesk's Postfix |
|
||||||
| domain.tld | MX | `10 mail.domain.tld` | |
|
| domain.tld | MX | `10 mail.domain.tld` | |
|
||||||
| domain.tld | TXT | `v=spf1 +a +mx +a:mail.domain.tld ~all` | Optional, use proper MTA record if present |
|
| domain.tld | TXT | `v=spf1 +a +mx +a:mail.domain.tld ~all` | Optional, use proper MTA record if present |
|
||||||
| _dmarc.domain.tld | TXT | `v=DMARC1; p=quarantine` | Optional |
|
| _dmarc.domain.tld | TXT | `v=DMARC1; p=quarantine` | Optional |
|
||||||
| _matrix._tcp.domain.tld | SRV | `1 10 PORT matrix.domain.tld` | `PORT` is your NodePort/LoadBalancer port of `opendesk-synapse-federation` service |
|
| default._domainkey.domain.tld | TXT | `v=DKIM1; k=rsa; h=sha256; ...` | Optional DKIM settings |
|
||||||
|
|
||||||
## Domain
|
## Domain
|
||||||
|
|
||||||
@@ -96,29 +100,29 @@ export DOMAIN=domain.tld
|
|||||||
|
|
||||||
All available apps and their default value can be found in `helmfile/environments/default/workplace.yaml`.
|
All available apps and their default value can be found in `helmfile/environments/default/workplace.yaml`.
|
||||||
|
|
||||||
| Component | Name | Default | Description |
|
| Component | Name | Default | Description |
|
||||||
|-----------------------------|-------------------------------------|---------|--------------------------------|
|
| -------------------- | --------------------------- | ------- | ------------------------------ |
|
||||||
| Certificates | `certificates.enabled` | `true` | TLS certificates |
|
| Certificates | `certificates.enabled` | `true` | TLS certificates |
|
||||||
| ClamAV (Distributed) | `clamavDistributed.enabled` | `false` | Antivirus engine |
|
| ClamAV (Distributed) | `clamavDistributed.enabled` | `false` | Antivirus engine |
|
||||||
| ClamAV (Simple) | `clamavSimple.enabled` | `true` | Antivirus engine |
|
| ClamAV (Simple) | `clamavSimple.enabled` | `true` | Antivirus engine |
|
||||||
| Collabora | `collabora.enabled` | `true` | Weboffice |
|
| Collabora | `collabora.enabled` | `true` | Weboffice |
|
||||||
| CryptPad | `cryptpad.enabled` | `true` | Weboffice |
|
| CryptPad | `cryptpad.enabled` | `true` | Weboffice |
|
||||||
| Dovecot | `dovecot.enabled` | `true` | Mail backend |
|
| Dovecot | `dovecot.enabled` | `true` | Mail backend |
|
||||||
| Element | `element.enabled` | `true` | Secure communications platform |
|
| Element | `element.enabled` | `true` | Secure communications platform |
|
||||||
| Intercom Service | `intercom.enabled` | `true` | Cross service data exchange |
|
| Intercom Service | `intercom.enabled` | `true` | Cross service data exchange |
|
||||||
| Jitsi | `jitsi.enabled` | `true` | Videoconferencing |
|
| Jitsi | `jitsi.enabled` | `true` | Videoconferencing |
|
||||||
| MariaDB | `mariadb.enabled` | `true` | Database |
|
| MariaDB | `mariadb.enabled` | `true` | Database |
|
||||||
| Memcached | `memcached.enabled` | `true` | Cache Database |
|
| Memcached | `memcached.enabled` | `true` | Cache Database |
|
||||||
| MinIO | `minio.enabled` | `true` | Object Storage |
|
| MinIO | `minio.enabled` | `true` | Object Storage |
|
||||||
| Nextcloud | `nextcloud.enabled` | `true` | File share |
|
| Nextcloud | `nextcloud.enabled` | `true` | File share |
|
||||||
| OpenProject | `openproject.enabled` | `true` | Project management |
|
| Nubus | `nubus.enabled` | `true` | Identity Management & Portal |
|
||||||
| OX Appsuite | `oxAppsuite.enabled` | `true` | Groupware |
|
| OpenProject | `openproject.enabled` | `true` | Project management |
|
||||||
| Provisioning | `oxConnector.enabled` | `true` | Backend provisioning |
|
| OX Appsuite | `oxAppsuite.enabled` | `true` | Groupware |
|
||||||
| Postfix | `postfix.enabled` | `true` | MTA |
|
| Provisioning | `oxConnector.enabled` | `true` | Backend provisioning |
|
||||||
| PostgreSQL | `postgresql.enabled` | `true` | Database |
|
| Postfix | `postfix.enabled` | `true` | MTA |
|
||||||
| Redis | `redis.enabled` | `true` | Cache Database |
|
| PostgreSQL | `postgresql.enabled` | `true` | Database |
|
||||||
| Univention Management Stack | `univentionManagementStack.enabled` | `true` | Identity Management & Portal |
|
| Redis | `redis.enabled` | `true` | Cache Database |
|
||||||
| XWiki | `xwiki.enabled` | `true` | Knowledgebase |
|
| XWiki | `xwiki.enabled` | `true` | Knowledge management |
|
||||||
|
|
||||||
Exemplary, Jitsi can be disabled like:
|
Exemplary, Jitsi can be disabled like:
|
||||||
|
|
||||||
@@ -153,6 +157,15 @@ alternatively you can use an environment variable:
|
|||||||
export PRIVATE_IMAGE_REGISTRY_URL=my_private_registry.domain.tld
|
export PRIVATE_IMAGE_REGISTRY_URL=my_private_registry.domain.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
|
or control repository override fine-granular per registry:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
repositories:
|
||||||
|
image:
|
||||||
|
dockerHub: "my_private_registry.domain.tld/docker.io/"
|
||||||
|
registryOpencodeDe: "my_private_registry.domain.tld/registry.opencode.de/"
|
||||||
|
```
|
||||||
|
|
||||||
If authentication is required, you can reference imagePullSecrets as following:
|
If authentication is required, you can reference imagePullSecrets as following:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@@ -191,17 +204,29 @@ If your cluster has not the default `10.0.0.0/8` CIDR configured, you need to pr
|
|||||||
```yaml
|
```yaml
|
||||||
cluster:
|
cluster:
|
||||||
networking:
|
networking:
|
||||||
cidr: "127.0.0.0/8"
|
cidr:
|
||||||
|
- "127.0.0.0/8"
|
||||||
|
```
|
||||||
|
|
||||||
|
If your load balancer / reverse proxy IPs are not already covered by the above `cidr` you need to
|
||||||
|
explicitly configure the related IPs or IP ranges:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
cluster:
|
||||||
|
networking:
|
||||||
|
incomingCIDR:
|
||||||
|
- "172.16.0.0/12"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Ingress
|
### Ingress
|
||||||
|
|
||||||
By default, the `ingressClassName` is empty to choose your default ingress controller, you may want to customize it by
|
By default, the `ingressClassName` is empty to choose your default ingress controller. You may want to customize it by
|
||||||
setting:
|
setting the following attribute to the name of the currently only supported ingress controller `ingress-nginx` (see
|
||||||
|
[requirements.md](./requirements.md)) for reference) within your deployment if that is not the clusters default ingress.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
ingress:
|
ingress:
|
||||||
ingressClassName: "cilium"
|
ingressClassName: "name-of-my-nginx-ingress"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Container runtime
|
### Container runtime
|
||||||
@@ -237,9 +262,34 @@ persistence:
|
|||||||
|
|
||||||
## Connectivity
|
## Connectivity
|
||||||
|
|
||||||
|
### Ports
|
||||||
|
|
||||||
|
**Note:** If you use `NodePort` for service exposure, you need to check your deployment for the actual ports.
|
||||||
|
|
||||||
|
#### Web based user interface
|
||||||
|
|
||||||
|
To use the openDesk functionality with its web based user interface you need to publicly expose the following ports:
|
||||||
|
|
||||||
|
| Component | Description | Port | Type |
|
||||||
|
| ------------------ | ----------------------- | ----: | ---: |
|
||||||
|
| openDesk | Kubernetes Ingress | 80 | TCP |
|
||||||
|
| openDesk | Kubernetes Ingress | 443 | TCP |
|
||||||
|
| Jitsi Video Bridge | ICE Port for video data | 10000 | UDP |
|
||||||
|
|
||||||
|
#### Mail clients
|
||||||
|
|
||||||
|
To connect with mail clients like [Thunderbird](https://www.thunderbird.net/), the following ports need public exposure:
|
||||||
|
|
||||||
|
| Component | Description | Port | Type |
|
||||||
|
| ------------------ | ----------------------- | ----: | ---: |
|
||||||
|
| Dovecot | IMAPS | 993 | TCP |
|
||||||
|
| | POP3S | 995 | TCP |
|
||||||
|
| Postfix | SMTP | 25 | TCP |
|
||||||
|
| | SMTPS | 587 | TCP |
|
||||||
|
|
||||||
### Mail/SMTP configuration
|
### Mail/SMTP configuration
|
||||||
|
|
||||||
To use the full potential of the openDesk, you need to set up an SMTP relay which allows to send emails from
|
To use the full potential of the openDesk, you need to set up an SMTP relay which allows sending emails from
|
||||||
the whole subdomain.
|
the whole subdomain.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
@@ -249,6 +299,20 @@ smtp:
|
|||||||
password: "secret"
|
password: "secret"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Enabling DKIM signing of emails helps to reduce spam and increases trust.
|
||||||
|
openDesk ships dkimpy-milter as Postfix milter for signing mails.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
dkimpy:
|
||||||
|
enable: true
|
||||||
|
dkim:
|
||||||
|
key:
|
||||||
|
value: |
|
||||||
|
HzZs08QF1O7UiAkcM9T3U7rePPECtSFvWZIvyKqdg8E=
|
||||||
|
selector: "default"
|
||||||
|
useED25519: true # when false, RSA is used
|
||||||
|
```
|
||||||
|
|
||||||
### TURN configuration
|
### TURN configuration
|
||||||
|
|
||||||
Some components (Jitsi, Element) use for direct communication a TURN server. You can configure your own TURN server with
|
Some components (Jitsi, Element) use for direct communication a TURN server. You can configure your own TURN server with
|
||||||
@@ -348,8 +412,7 @@ When all apps are successfully deployed and pod status' went to `Running` or `Su
|
|||||||
https://portal.domain.tld
|
https://portal.domain.tld
|
||||||
```
|
```
|
||||||
|
|
||||||
If you change the subdomain of `univentionManagementStack`, you need to replace `portal`
|
If you change the subdomain of `nubus`, you need to replace `portal` by your specified subdomain.
|
||||||
by your specified subdomain.
|
|
||||||
|
|
||||||
**Credentials:**
|
**Credentials:**
|
||||||
|
|
||||||
|
|||||||
225
docs/migrations.md
Normal file
225
docs/migrations.md
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
-->
|
||||||
|
|
||||||
|
<h1>Upgrade migrations</h1>
|
||||||
|
|
||||||
|
* [Disclaimer](#disclaimer)
|
||||||
|
* [Releases upgrades](#releases-upgrades)
|
||||||
|
* [From v0.9.0](#from-v090)
|
||||||
|
* [Changed openDesk defaults](#changed-opendesk-defaults)
|
||||||
|
* [MatrixID localpart update](#matrixid-localpart-update)
|
||||||
|
* [File-share configurability](#file-share-configurability)
|
||||||
|
* [Updated default subdomains in `global.hosts`](#updated-default-subdomains-in-globalhosts)
|
||||||
|
* [Updated `global.imagePullSecrets`](#updated-globalimagepullsecrets)
|
||||||
|
* [Automated migrations](#automated-migrations)
|
||||||
|
* [Local Postfix as Relay](#local-postfix-as-relay)
|
||||||
|
* [Updated IAM component Nubus](#updated-iam-component-nubus)
|
||||||
|
* [Manual cleanup](#manual-cleanup)
|
||||||
|
* [From v0.8.1](#from-v081)
|
||||||
|
* [Updated `cluster.networking.cidr`](#updated-clusternetworkingcidr)
|
||||||
|
* [Updated customizable template attributes](#updated-customizable-template-attributes)
|
||||||
|
* [`migrations` S3 bucket](#migrations-s3-bucket)
|
||||||
|
* [Related components and artefacts](#related-components-and-artefacts)
|
||||||
|
* [Development](#development)
|
||||||
|
|
||||||
|
# Disclaimer
|
||||||
|
|
||||||
|
We do not offer support for upgrades before we reach openDesk 1.0.
|
||||||
|
|
||||||
|
Though we try to ease the pain when it comes to 0.x upgrades. That is what this document is for.
|
||||||
|
|
||||||
|
**Limitations:**
|
||||||
|
- We assume that the PV reclaim policy is set to `delete`, so expect that PVs get deleted as soon as the related PVC was
|
||||||
|
deleted and will cover an explicit delete for PVs.
|
||||||
|
|
||||||
|
# Releases upgrades
|
||||||
|
|
||||||
|
## From v0.9.0
|
||||||
|
|
||||||
|
### Changed openDesk defaults
|
||||||
|
|
||||||
|
#### MatrixID localpart update
|
||||||
|
|
||||||
|
Until 0.9.0 openDesk used the LDAP entryUUID of a user to generate the user's MatrixID. Due to restrictions of the
|
||||||
|
Matrix protocol, an update of a MatrixID is not possible, therefore, it was technically convenient to use the UUID
|
||||||
|
as it is immutable (see https://de.wikipedia.org/wiki/Universally_Unique_Identifier for more details on UUIDs.)
|
||||||
|
|
||||||
|
From the user experience perspective, that was a bad approach, so from now on, by default, the username which
|
||||||
|
is also used for logging into openDesk is used to define the localpart of the MatrixID.
|
||||||
|
|
||||||
|
For existing installations: The changed setting only affects users that login to Element the first time. Existing
|
||||||
|
user accounts will not be harmed. If you want existing users to get new MatrixIDs based on the new setting, you
|
||||||
|
need to update their external ID in Synapse and deactivate the old user afterward. The user will get a new
|
||||||
|
Matrix account from scratch, losing the existing contacts, chats and rooms.
|
||||||
|
|
||||||
|
The following Admin API calls are helpful:
|
||||||
|
- GET /_synapse/admin/v2/users/@<entryuuid>:<matrixdomain> get the user's existing external_id (auth_provider: "oidc")
|
||||||
|
- PUT /_synapse/admin/v2/users/@<entryuuid>:<matrixdomain> update user's external_id with JSON payload:
|
||||||
|
`{ "external_ids": [ { "auth_provider": "oidc", "external_id": "<old_id>+deprecated" } ] }`
|
||||||
|
- POST /_synapse/admin/v1/deactivate/@<entryuuid>:<matrixdomain> deactivate old user with JSON payload:
|
||||||
|
`{ "erase": true }`
|
||||||
|
|
||||||
|
For more details, check the Admin API documentation:
|
||||||
|
https://element-hq.github.io/synapse/latest/usage/administration/admin_api/index.html
|
||||||
|
|
||||||
|
You can enforce the old standard with the following setting:
|
||||||
|
```
|
||||||
|
functional:
|
||||||
|
chat:
|
||||||
|
matrix:
|
||||||
|
profile:
|
||||||
|
useImmutableIdentifierForLocalpart: true
|
||||||
|
```
|
||||||
|
|
||||||
|
#### File-share configurability
|
||||||
|
|
||||||
|
Now we provide some configurability regarding the sharing capabilities of the Nextcloud component.
|
||||||
|
|
||||||
|
The new default is different from the standard until now.
|
||||||
|
To keep the current state after the upgrade from 0.9.0, you have to provide the following settings:
|
||||||
|
|
||||||
|
```
|
||||||
|
functional:
|
||||||
|
filestore:
|
||||||
|
sharing:
|
||||||
|
external:
|
||||||
|
enabled: true
|
||||||
|
```
|
||||||
|
|
||||||
|
Please also check the other new options available at `functional.filestore.sharing`.
|
||||||
|
|
||||||
|
#### Updated default subdomains in `global.hosts`
|
||||||
|
|
||||||
|
We have streamlined the subdomain names used by openDesk to be more user-friendly and to avoid the use of specific
|
||||||
|
product names.
|
||||||
|
|
||||||
|
This results in following change of default subdomain naming:
|
||||||
|
|
||||||
|
- **collabora**: `collabora` → `office`
|
||||||
|
- **cryptpad**: `cryptpad` → `pad`
|
||||||
|
- **minioApi**: `minio` → `objectstore`
|
||||||
|
- **minioConsole**: `minio-console` → `objectstore-ui`
|
||||||
|
- **nextcloud**: `fs` → `files`
|
||||||
|
- **openproject**: `project` → `projects`
|
||||||
|
|
||||||
|
During upgrade, any existing environment needs to keep the old subdomains,
|
||||||
|
cause url/link changes are not every supported and not tested at all.
|
||||||
|
|
||||||
|
If you have not already defined the entire `global.hosts` dictionary in your custom environments values, please set it
|
||||||
|
to the defaults that were used before the upgrade:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
global:
|
||||||
|
hosts:
|
||||||
|
collabora: "collabora"
|
||||||
|
cryptpad: "cryptpad"
|
||||||
|
element: "chat"
|
||||||
|
intercomService: "ics"
|
||||||
|
jitsi: "meet"
|
||||||
|
keycloak: "id"
|
||||||
|
matrixNeoBoardWidget: "matrix-neoboard-widget"
|
||||||
|
matrixNeoChoiceWidget: "matrix-neochoice-widget"
|
||||||
|
matrixNeoDateFixBot: "matrix-neodatefix-bot"
|
||||||
|
matrixNeoDateFixWidget: "matrix-neodatefix-widget"
|
||||||
|
minioApi: "minio"
|
||||||
|
minioConsole: "minio-console"
|
||||||
|
nextcloud: "fs"
|
||||||
|
openproject: "project"
|
||||||
|
openxchange: "webmail"
|
||||||
|
synapse: "matrix"
|
||||||
|
synapseFederation: "matrix-federation"
|
||||||
|
univentionManagementStack: "portal"
|
||||||
|
whiteboard: "whiteboard"
|
||||||
|
xwiki: "wiki"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Updated `global.imagePullSecrets`
|
||||||
|
|
||||||
|
Without using a custom registry, you can pull all the openDesk images without authentication.
|
||||||
|
Thus defining not existing imagePullSecrets creates unnecessary errors, so we removed them.
|
||||||
|
|
||||||
|
You can keep the current settings by setting the `external-registry` in your custom environment values:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
global:
|
||||||
|
imagePullSecrets:
|
||||||
|
- "external-registry"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Automated migrations
|
||||||
|
|
||||||
|
#### Local Postfix as Relay
|
||||||
|
|
||||||
|
All components relay outgoing mails to the local Postfix. In order for the configuration to be picked up by all components the following restarts are triggered in the migrations `POST` stage:
|
||||||
|
|
||||||
|
- Deployments:
|
||||||
|
- `opendesk-nextcloud-php`
|
||||||
|
- `ums-umc-server`
|
||||||
|
- Stateful Sets:
|
||||||
|
- `ums-selfservice-listener`
|
||||||
|
- `opendesk-synapse`
|
||||||
|
|
||||||
|
#### Updated IAM component Nubus
|
||||||
|
|
||||||
|
openDesk is integrating the latest [Nubus](https://www.univention.de/produkte/nubus/) development from Univention. The now redundant and scalable LDAP requires migration activities. These have been automated to avoid manual interaction. The `run_2` of the openDesk
|
||||||
|
upgrade migrations executes the following steps:
|
||||||
|
|
||||||
|
- Stage `PRE`:
|
||||||
|
- Delete service `ums-keycloak`, as it will be recreated headless.
|
||||||
|
- Scale down `statefulset/ums-ldap-server` and `statefulset/ums-ldap-notifier` in preparation or the next step:
|
||||||
|
- Create two new PVCs `shared-data-ums-ldap-server-primary-0` and `shared-data-ums-ldap-server-primary-1` for the new LDAP primary pods as copy from the existing `shared-data-ums-ldap-server-0`. The LDAP secondaries will sync from the primary nodes.
|
||||||
|
- Stage `POST`:
|
||||||
|
- Restart Keycloak.
|
||||||
|
|
||||||
|
##### Manual cleanup
|
||||||
|
|
||||||
|
Currently we do not execute possible cleanup steps as part of the migrations POST stage. So you might want to remove the no longer used PVCs after successful upgrade:
|
||||||
|
```
|
||||||
|
NAMESPACE=<your_namespace>
|
||||||
|
kubectl -n ${NAMESPACE} delete pvc shared-data-ums-ldap-server-0
|
||||||
|
kubectl -n ${NAMESPACE} delete pvc shared-run-ums-ldap-server-0
|
||||||
|
```
|
||||||
|
|
||||||
|
## From v0.8.1
|
||||||
|
|
||||||
|
### Updated `cluster.networking.cidr`
|
||||||
|
|
||||||
|
- Action: `cluster.networking.cidr` is now an array (was a string until 0.8.1), please update your setup accordingly if you explicitly set this value.
|
||||||
|
- Reference:[cluster.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/cluster.yaml)
|
||||||
|
|
||||||
|
### Updated customizable template attributes
|
||||||
|
|
||||||
|
- Action: Please ensure you update you custom deployment values according with the updated default value structure.
|
||||||
|
- References:
|
||||||
|
- `functional.` prefix for `authentication.*`, `externalServices.*`, `admin.*` and `filestore.*`, see [functional.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/functional.yaml).
|
||||||
|
- `debug.` prefix for `cleanup.*`, see [debug.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/debug.yaml).
|
||||||
|
- `monitoring.` prefix for `prometheus.*` and `graphana.*`, see [monitoring.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/monitoring.yaml).
|
||||||
|
- `smtp.` prefix for `localpartNoReply`, see [smtp.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/smtp.yaml).
|
||||||
|
|
||||||
|
### `migrations` S3 bucket
|
||||||
|
|
||||||
|
- Action: For self managed/external S3/object storages, please ensure you add a bucket `migrations` to your S3.
|
||||||
|
- Reference: `objectstores.migrations` in [objectstores.yaml](https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk/-/blob/main/helmfile/environments/default/objectstores.yaml)
|
||||||
|
|
||||||
|
# Related components and artefacts
|
||||||
|
|
||||||
|
openDesk comes with two upgrade steps as part of the deployment, they can be found in the folder [/helmfile/apps](../helmfile/apps/) as all other components:
|
||||||
|
|
||||||
|
- `migrations-pre`: Is the very first app that gets deployed.
|
||||||
|
- `migrations-post`: Is the last app that gets deployed.
|
||||||
|
|
||||||
|
Both migrations have to be deployed exclusively at their first/last position and not in parallel with other components.
|
||||||
|
|
||||||
|
The status of the upgrade migrations is tracked in the ConfigMap `migrations-status`, more details can be found in the [README.md of the related container image](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-migrations/README.md).
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
When a new upgrade migration is required, ensure to address the following list:
|
||||||
|
|
||||||
|
- Update the generated release version file [`global.generated.yaml`](../helmfile/environments/default/global.generated.yaml) at least on the patch level to test the upgrade in your feature branch as well as trigger it in the `develop` branch after the feature branch was merged. The set value gets overwritten during the release process with the release's actual version number.
|
||||||
|
- You have to implement the migration logic as a runner script in the [`opendesk-migrations`](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/images/opendesk-migrations) image. Please find more instructions in the linked repository.
|
||||||
|
- You most likely have to update the [`opendesk-migrations` Helm chart](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-migrations) within the `rules` section of the [`role.yaml`](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-migrations/-/blob/main/charts/opendesk-migrations/templates/role.yaml) to provide the permissions required for the execution of your migration's logic.
|
||||||
|
- You have to set the runner's ID you want to execute in the [migrations.yaml.gotmpl](../helmfile/shared/migrations.yaml.gotmpl). See also the `migrations.*` section of [the Helm chart's README.md](https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-migrations/-/blob/main/charts/opendesk-migrations/README.md).
|
||||||
|
- Update the [`charts.yaml`](../helmfile/environments/default/charts.yaml) and [`images.yaml`](../helmfile/environments/default/images.yaml) to reflect the newer releases of the `opendesk-migrations` Helm chart and container image.
|
||||||
@@ -22,7 +22,7 @@ openDesk is a Kubernetes only solution and requires an existing Kubernetes (K8s)
|
|||||||
|
|
||||||
- K8s cluster >= 1.24, [CNCF Certified Kubernetes distribution](https://www.cncf.io/certification/software-conformance/)
|
- K8s cluster >= 1.24, [CNCF Certified Kubernetes distribution](https://www.cncf.io/certification/software-conformance/)
|
||||||
- Domain and DNS Service
|
- Domain and DNS Service
|
||||||
- Ingress controller (supported are nginx-ingress, HAProxy)
|
- Ingress controller (Ingress NGINX)
|
||||||
- [Helm](https://helm.sh/) >= v3.9.0
|
- [Helm](https://helm.sh/) >= v3.9.0
|
||||||
- [Helmfile](https://helmfile.readthedocs.io/en/latest/) >= **v0.157.0**
|
- [Helmfile](https://helmfile.readthedocs.io/en/latest/) >= **v0.157.0**
|
||||||
- [HelmDiff](https://github.com/databus23/helm-diff) >= 3.6.0
|
- [HelmDiff](https://github.com/databus23/helm-diff) >= 3.6.0
|
||||||
@@ -33,11 +33,13 @@ openDesk is a Kubernetes only solution and requires an existing Kubernetes (K8s)
|
|||||||
|
|
||||||
The following minimal requirements are thought for initial evaluation deployment:
|
The following minimal requirements are thought for initial evaluation deployment:
|
||||||
|
|
||||||
| Spec | Value |
|
| Spec | Value |
|
||||||
|------|------------------------------------------------------|
|
| ---- | ----------------------------------------------------- |
|
||||||
| CPU | 8 Cores of x64 or x86 CPU (ARM is not supported yet) |
|
| CPU | 12 Cores of x64 or x86 CPU (ARM is not supported yet) |
|
||||||
| RAM | 16 GB, recommended 32 GB |
|
| RAM | 32 GB, more recommended |
|
||||||
| Disk | HDD or SSD, >10 GB |
|
| Disk | HDD or SSD, >10 GB |
|
||||||
|
|
||||||
|
Check [`scaling.md`](./scaling.md) for more details on resource requirements and scalability.
|
||||||
|
|
||||||
# Kubernetes
|
# Kubernetes
|
||||||
|
|
||||||
@@ -53,10 +55,11 @@ The deployment is tested against [kubespray](https://github.com/kubernetes-sigs/
|
|||||||
The deployment is intended to use only over HTTPS via a configured FQDN, therefor it is required to have a proper
|
The deployment is intended to use only over HTTPS via a configured FQDN, therefor it is required to have a proper
|
||||||
configured ingress controller deployed.
|
configured ingress controller deployed.
|
||||||
|
|
||||||
**Maintained controllers:**
|
**Supported controllers:**
|
||||||
- [NGINX Ingress Controller](https://github.com/nginxinc/kubernetes-ingress)
|
|
||||||
- [Ingress NGINX Controller](https://github.com/kubernetes/ingress-nginx)
|
- [Ingress NGINX Controller](https://github.com/kubernetes/ingress-nginx)
|
||||||
- [HAProxy Kubernetes Ingress Controller](https://github.com/haproxytech/kubernetes-ingress)
|
|
||||||
|
Note: The platform development team is evaluating the use of [Gateway API](https://gateway-api.sigs.k8s.io/).
|
||||||
|
If you have feedback on that topic, please share it with us.
|
||||||
|
|
||||||
# Volume provisioner
|
# Volume provisioner
|
||||||
|
|
||||||
@@ -75,7 +78,9 @@ openDesk certificate management disabled.
|
|||||||
|
|
||||||
# External services
|
# External services
|
||||||
|
|
||||||
Evaluation the openDesk deployment does not require any external service to start, but features may be limited.
|
For development and evaluation of openDesk we bundle some service to start with. Be aware that for production
|
||||||
|
deployments you need to make use of your own production grade services, see the
|
||||||
|
[external-services.md](./external-services.md) for configuration details.
|
||||||
|
|
||||||
| Group | Type | Version | Tested against |
|
| Group | Type | Version | Tested against |
|
||||||
| -------- | ------------------- | ------- | --------------------- |
|
| -------- | ------------------- | ------- | --------------------- |
|
||||||
|
|||||||
@@ -7,55 +7,17 @@ SPDX-License-Identifier: Apache-2.0
|
|||||||
|
|
||||||
This document should cover the abilities to scale apps.
|
This document should cover the abilities to scale apps.
|
||||||
|
|
||||||
<!-- TOC -->
|
# Horizontal scalability
|
||||||
* [Replicas](#replicas)
|
|
||||||
<!-- TOC -->
|
|
||||||
|
|
||||||
# Replicas
|
We are working on generating this document automatically based on the file
|
||||||
|
[`replicas.yaml`](../helmfile/environments/default/replicas.yaml) that contains necessary annotations.
|
||||||
|
In the meantime this file can be used to check the components scaling support / capabilities.
|
||||||
|
|
||||||
The Replicas can be increased of almost any component, but is only effective for high-availability or load-balancing for
|
# Upstream information
|
||||||
apps with a check-mark in `Scaling (effective)` column.
|
|
||||||
|
|
||||||
Verified positive effects are marked with a check-mark in `Scaling (verified)` column, apps which are not yet tested are
|
While scaling services horizontally is the ideal solution, information about vertical scaling is helpful
|
||||||
marked with a gear.
|
when it comes to defining the applications resources, see [`resources.yaml`](../helmfile/environments/default/resources.yaml) for references.
|
||||||
|
|
||||||
|
Please find below links to the application's upstream resources about scaling:
|
||||||
|
|
||||||
| Component | Name | Scaling (effective) | Scaling (verified) |
|
- [OpenProject system requirements](https://www.openproject.org/docs/installation-and-operations/system-requirements/)
|
||||||
|-----------------------------|------------------------------------------|:-------------------:|:------------------:|
|
|
||||||
| ClamAV | `replicas.clamav` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.clamd` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.freshclam` | :x: | :x: |
|
|
||||||
| | `replicas.icap` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.milter` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| Collabora | `replicas.collabora` | :white_check_mark: | :gear: |
|
|
||||||
| CryptPad | `replicas.cryptpad` | :white_check_mark: | :gear: |
|
|
||||||
| Dovecot | `replicas.dovecot` | :x: | :gear: |
|
|
||||||
| Element | `replicas.element` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.matrixNeoBoardWidget` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.matrixNeoChoiceWidget` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.matrixNeoDateFixBot` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.matrixNeoDateFixWidget` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.matrixUserVerificationService` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.synapse` | :x: | :gear: |
|
|
||||||
| | `replicas.synapseWeb` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.wellKnown` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| Intercom Service | `replicas.intercomService` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| Jitsi | `replicas.jibri` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.jicofo` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.jitsi ` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.jitsiKeycloakAdapter` | :white_check_mark: | :gear: |
|
|
||||||
| | `replicas.jvb ` | :x: | :x: |
|
|
||||||
| Keycloak | `replicas.keycloak` | :white_check_mark: | :gear: |
|
|
||||||
| Memcached | `replicas.memcached` | :gear: | :gear: |
|
|
||||||
| Minio | `replicas.minioDistributed` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| Nextcloud | `replicas.nextcloudApache2` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.nextcloudExporter` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.nextcloudPHP` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| OpenProject | `replicas.openproject` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| Postfix | `replicas.postfix` | :x: | :gear: |
|
|
||||||
| Redis | `replicas.redis` | :gear: | :gear: |
|
|
||||||
| Univention Management Stack | | :gear: | :gear: |
|
|
||||||
| | `replicas.umsPortalFrontend` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.umsPortalServer` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| | `replicas.umsUdmRestApi` | :white_check_mark: | :white_check_mark: |
|
|
||||||
| XWiki | `replicas.xwiki` | :x: | :gear: |
|
|
||||||
|
|||||||
@@ -170,6 +170,7 @@ This list gives you an overview of templated security settings and if they compl
|
|||||||
| **nextcloud**/opendesk-nextcloud/apache2 | :white_check_mark: | no | no | yes | yes | 65532 | 65532 | yes | yes |
|
| **nextcloud**/opendesk-nextcloud/apache2 | :white_check_mark: | no | no | yes | yes | 65532 | 65532 | yes | yes |
|
||||||
| **nextcloud**/opendesk-nextcloud/exporter | :white_check_mark: | no | no | yes | yes | 65532 | 65532 | yes | yes |
|
| **nextcloud**/opendesk-nextcloud/exporter | :white_check_mark: | no | no | yes | yes | 65532 | 65532 | yes | yes |
|
||||||
| **nextcloud**/opendesk-nextcloud/php | :white_check_mark: | no | no | yes | yes | 65532 | 65532 | yes | yes |
|
| **nextcloud**/opendesk-nextcloud/php | :white_check_mark: | no | no | yes | yes | 65532 | 65532 | yes | yes |
|
||||||
|
| **open-xchange**/dovecot | :x: | no | n/a | yes | n/a | n/a | n/a | yes | no ["CHOWN","DAC_OVERRIDE","KILL","NET_BIND_SERVICE","SETGID","SETUID","SYS_CHROOT"] |
|
||||||
| **open-xchange**/open-xchange/appsuite/core-documentconverter | :x: | no | no | no | yes | 987 | 1000 | yes | yes |
|
| **open-xchange**/open-xchange/appsuite/core-documentconverter | :x: | no | no | no | yes | 987 | 1000 | yes | yes |
|
||||||
| **open-xchange**/open-xchange/appsuite/core-guidedtours | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
|
| **open-xchange**/open-xchange/appsuite/core-guidedtours | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
|
||||||
| **open-xchange**/open-xchange/appsuite/core-imageconverter | :x: | no | no | no | yes | 987 | 1000 | yes | yes |
|
| **open-xchange**/open-xchange/appsuite/core-imageconverter | :x: | no | no | no | yes | 987 | 1000 | yes | yes |
|
||||||
@@ -196,31 +197,17 @@ This list gives you an overview of templated security settings and if they compl
|
|||||||
| **services**/postgresql | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
|
| **services**/postgresql | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
|
||||||
| **services**/redis/master | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
|
| **services**/redis/master | :white_check_mark: | no | no | yes | yes | 1001 | 1001 | yes | yes |
|
||||||
| **univention-management-stack**/opendesk-keycloak-bootstrap | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
|
| **univention-management-stack**/opendesk-keycloak-bootstrap | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
|
||||||
| **univention-management-stack**/ums-guardian-authorization-api | :x: | no | no | no | yes | 1000 | 1000 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
| **univention-management-stack**/ums/keycloak | :x: | no | no | no | yes | 1000 | 1000 | yes | yes |
|
||||||
| **univention-management-stack**/ums-guardian-management-api | :x: | no | no | no | yes | 1000 | 1000 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
| **univention-management-stack**/ums/keycloak-bootstrap | :x: | no | no | no | yes | 1000 | 1000 | yes | yes |
|
||||||
| **univention-management-stack**/ums-guardian-management-ui | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
| **univention-management-stack**/ums/keycloak-extensions/handler | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
|
||||||
| **univention-management-stack**/ums-keycloak | :x: | no | no | no | yes | 1000 | 1000 | yes | yes |
|
| **univention-management-stack**/ums/keycloak-extensions/proxy | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
|
||||||
| **univention-management-stack**/ums-keycloak-bootstrap | :x: | no | no | no | yes | 1000 | 1000 | yes | yes |
|
| **univention-management-stack**/ums/ldap-notifier | :x: | n/a | n/a | n/a | n/a | n/a | n/a | yes | no |
|
||||||
| **univention-management-stack**/ums-keycloak-extensions/handler | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
|
| **univention-management-stack**/ums/portal-listener | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
||||||
| **univention-management-stack**/ums-keycloak-extensions/proxy | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
|
| **univention-management-stack**/ums/selfservice-listener | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
||||||
| **univention-management-stack**/ums-ldap-notifier | :x: | no | no | no | no | 0 | 0 | yes | yes |
|
| **univention-management-stack**/ums/stack-data-swp | :x: | no | no | no | no | 0 | 0 | yes | yes |
|
||||||
| **univention-management-stack**/ums-ldap-server | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
| **univention-management-stack**/ums/stack-gateway | :x: | no | no | no | yes | 1001 | 0 | yes | yes |
|
||||||
| **univention-management-stack**/ums-notifications-api | :x: | no | no | no | no | 1000 | 1000 | yes | yes |
|
| **univention-management-stack**/ums/umc-gateway | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
||||||
| **univention-management-stack**/ums-open-policy-agent | :x: | no | no | no | yes | 1000 | 1000 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
| **univention-management-stack**/ums/umc-server | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
||||||
| **univention-management-stack**/ums-portal-frontend | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **univention-management-stack**/ums-portal-listener | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **univention-management-stack**/ums-portal-server | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **univention-management-stack**/ums-provisioning/dispatcher | :x: | no | no | no | yes | 1000 | 1000 | yes | yes |
|
|
||||||
| **univention-management-stack**/ums-provisioning/events-and-consumer-api | :x: | no | no | no | yes | 1000 | 1000 | yes | yes |
|
|
||||||
| **univention-management-stack**/ums-provisioning/udm-listener | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **univention-management-stack**/ums-selfservice-listener | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **univention-management-stack**/ums-stack-data-swp | :x: | no | no | no | no | 0 | 0 | yes | yes |
|
|
||||||
| **univention-management-stack**/ums-stack-data-ums | :x: | no | no | no | no | 0 | 0 | yes | yes |
|
|
||||||
| **univention-management-stack**/ums-stack-gateway | :x: | no | no | no | yes | 1001 | 1001 | yes | yes |
|
|
||||||
| **univention-management-stack**/ums-store-dav | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **univention-management-stack**/ums-udm-rest-api | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **univention-management-stack**/ums-umc-gateway | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **univention-management-stack**/ums-umc-server | :x: | no | no | no | no | 0 | 0 | yes | no ["CHOWN","DAC_OVERRIDE","FOWNER","FSETID","KILL","SETGID","SETUID","SETPCAP","NET_BIND_SERVICE","NET_RAW","SYS_CHROOT"] |
|
|
||||||
| **xwiki**/xwiki | :x: | no | no | no | yes | 100 | 101 | yes | yes |
|
| **xwiki**/xwiki | :x: | no | no | no | yes | 100 | 101 | yes | yes |
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ SPDX-License-Identifier: Apache-2.0
|
|||||||
* [Branch workflows](#branch-workflows)
|
* [Branch workflows](#branch-workflows)
|
||||||
* [`main`](#main)
|
* [`main`](#main)
|
||||||
* [`develop`](#develop)
|
* [`develop`](#develop)
|
||||||
* [`docu`](#docu)
|
* [`docs`](#docs)
|
||||||
* [`mntn`](#mntn)
|
* [`fix`](#fix)
|
||||||
* [`feat`](#feat)
|
* [`feat`](#feat)
|
||||||
* [Branch names](#branch-names)
|
* [Branch names](#branch-names)
|
||||||
* [Commit messages / Conventional Commits](#commit-messages--conventional-commits)
|
* [Commit messages / Conventional Commits](#commit-messages--conventional-commits)
|
||||||
@@ -169,8 +169,8 @@ The basic facts for the flow are:
|
|||||||
- Developers can create sub-branches from their feature branch(es) as needed.
|
- Developers can create sub-branches from their feature branch(es) as needed.
|
||||||
- When a *feature* branch gets pushed a Merge Request in `Draft` state is automatically created.
|
- When a *feature* branch gets pushed a Merge Request in `Draft` state is automatically created.
|
||||||
- We know three types of *feature* branches:
|
- We know three types of *feature* branches:
|
||||||
- `docu`: Doing just documentation changes
|
- `docs`: Doing just documentation changes
|
||||||
- `mntn`: Maintenance of the openDesk software components and minor configurational changes
|
- `fix`: Maintenance of the openDesk software components and minor configurational changes
|
||||||
- `feat`: All changes that do not fall into the two categories above, especially
|
- `feat`: All changes that do not fall into the two categories above, especially
|
||||||
- supplier deliverables and
|
- supplier deliverables and
|
||||||
- configurational changes that have a significant impact on openDesk users or require migrations[^1]
|
- configurational changes that have a significant impact on openDesk users or require migrations[^1]
|
||||||
@@ -185,21 +185,21 @@ gitGraph
|
|||||||
checkout "develop"
|
checkout "develop"
|
||||||
commit id: "QA 'nightly develop'"
|
commit id: "QA 'nightly develop'"
|
||||||
commit id: " "
|
commit id: " "
|
||||||
branch "docu"
|
branch "docs"
|
||||||
checkout "docu"
|
checkout "docs"
|
||||||
commit id: "Documentation commits" type: HIGHLIGHT
|
commit id: "Documentation commits" type: HIGHLIGHT
|
||||||
checkout "develop"
|
checkout "develop"
|
||||||
merge "docu"
|
merge "docs"
|
||||||
checkout "main"
|
checkout "main"
|
||||||
merge "develop" tag: "No release"
|
merge "develop" tag: "No release"
|
||||||
checkout "develop"
|
checkout "develop"
|
||||||
commit id: " "
|
commit id: " "
|
||||||
branch "mntn"
|
branch "fix"
|
||||||
checkout "mntn"
|
checkout "fix"
|
||||||
commit id: "Maintenance commits" type: HIGHLIGHT
|
commit id: "Maintenance commits" type: HIGHLIGHT
|
||||||
commit id: "QG 'mntn'" type: REVERSE
|
commit id: "QG 'fix'" type: REVERSE
|
||||||
checkout "develop"
|
checkout "develop"
|
||||||
merge "mntn"
|
merge "fix"
|
||||||
commit id: "QA 'release merge'" type: REVERSE
|
commit id: "QA 'release merge'" type: REVERSE
|
||||||
checkout "main"
|
checkout "main"
|
||||||
merge "develop" tag: "Patch or minor release"
|
merge "develop" tag: "Patch or minor release"
|
||||||
@@ -231,7 +231,7 @@ The Standard Quality Gate addresses quality assurance steps that should be execu
|
|||||||
1. Linting
|
1. Linting
|
||||||
- Blocking
|
- Blocking
|
||||||
- Licensing: [reuse](https://github.com/fsfe/reuse-tool)
|
- Licensing: [reuse](https://github.com/fsfe/reuse-tool)
|
||||||
- openDesk specific: Especially `images.yaml` and `charts.yaml`, find more details in the [development](./development.md) docu
|
- openDesk specific: Especially `images.yaml` and `charts.yaml`, find more details in [development.md](./development.md).
|
||||||
- Non Blocking
|
- Non Blocking
|
||||||
- Security: [Kyverno policy check](../.kyverno) addressing some IT-Grundschutz requirements
|
- Security: [Kyverno policy check](../.kyverno) addressing some IT-Grundschutz requirements
|
||||||
- Formal: Yaml
|
- Formal: Yaml
|
||||||
@@ -277,8 +277,8 @@ This section will explain the workflow for each branch (type) based on the Gitfl
|
|||||||
|
|
||||||
- `QA 'nightly main'`: Execute the SQG based on the most recent release. The upgrade test environment should be a long-standing environment that only gets built from scratch with the previous technical release when something breaks the environment.
|
- `QA 'nightly main'`: Execute the SQG based on the most recent release. The upgrade test environment should be a long-standing environment that only gets built from scratch with the previous technical release when something breaks the environment.
|
||||||
- Merge points: We are using the [Semantic Release convention](https://github.com/semantic-release/semantic-release) which itself is based on the [Semantic Versioning (SemVer) notation](https://semver.org) to automatically create technical releases on the merge points.
|
- Merge points: We are using the [Semantic Release convention](https://github.com/semantic-release/semantic-release) which itself is based on the [Semantic Versioning (SemVer) notation](https://semver.org) to automatically create technical releases on the merge points.
|
||||||
- "No release": When a merge from `develop` includes only changes from `docu` branches the merge into `main` will only consist of `docs` or `chore` commits. No new release will be generated by that merge.
|
- "No release": When a merge from `develop` includes only changes from `docs` branches the merge into `main` will only consist of `docs` or `chore` commits. No new release will be generated by that merge.
|
||||||
- "Patch or minor release": When changes from `mntn` branches get merged these might contain `fix` or `feat` commits causing a new technical release to be built with an updated version on Patch or Minor level.
|
- "Patch or minor release": When changes from `fix` branches get merged these might contain `fix` or `feat` commits causing a new technical release to be built with an updated version on Patch or Minor level.
|
||||||
- "Minor or major release": When changes from `feat` branches get merged these might contain `feat` commits even with breaking changes, causing a technical release to be built with an updated version on Minor or Major level.
|
- "Minor or major release": When changes from `feat` branches get merged these might contain `feat` commits even with breaking changes, causing a technical release to be built with an updated version on Minor or Major level.
|
||||||
- "Manual Functional Release Activities": Technical releases are loosely coupled to functional releases. The additional activities for a functional release select an existing technical release as a basis to generate the artifacts required for a functional release, for example:
|
- "Manual Functional Release Activities": Technical releases are loosely coupled to functional releases. The additional activities for a functional release select an existing technical release as a basis to generate the artifacts required for a functional release, for example:
|
||||||
- Conduct additional manual explorative and regression tests.
|
- Conduct additional manual explorative and regression tests.
|
||||||
@@ -289,19 +289,19 @@ This section will explain the workflow for each branch (type) based on the Gitfl
|
|||||||
- `QA 'nightly develop'`: Follows the same approach as `QA 'nightly main'` - execute the SQG based in this case on the head revision of the `develop` branch.
|
- `QA 'nightly develop'`: Follows the same approach as `QA 'nightly main'` - execute the SQG based in this case on the head revision of the `develop` branch.
|
||||||
- `QA 'release merge'`: The Merge Request for this merge has to be created manually by members of the platform development team. It should document:
|
- `QA 'release merge'`: The Merge Request for this merge has to be created manually by members of the platform development team. It should document:
|
||||||
- That the SQG was successfully executed upon the to-be merged state - it could be done explicitly or based on a `QA 'nightly develop'`
|
- That the SQG was successfully executed upon the to-be merged state - it could be done explicitly or based on a `QA 'nightly develop'`
|
||||||
- In case of `mntn` changes that usually how no test automation: Changes have been verified by a member of the platform development team.
|
- In case of `fix` changes that usually how no test automation: Changes have been verified by a member of the platform development team.
|
||||||
- That the changes have been reviewed by at least two members of the platform development team giving their approval on the Merge Request.
|
- That the changes have been reviewed by at least two members of the platform development team giving their approval on the Merge Request.
|
||||||
- Merge points (from `docu`, `mntn`, and `feat` branches): No additional activity on these merge points as the QA is ensured before the merge in the just-named branch types.
|
- Merge points (from `docs`, `fix`, and `feat` branches): No additional activity on these merge points as the QA is ensured before the merge in the just-named branch types.
|
||||||
|
|
||||||
##### `docu`
|
##### `docs`
|
||||||
|
|
||||||
Branches of type `docu` only contain the commits themselves and have to adhere to the workflow basic fact that:
|
Branches of type `docs` only contain the commits themselves and have to adhere to the workflow basic fact that:
|
||||||
> All merges into `develop` or `main` require two approvals from the platform development team.
|
> All merges into `develop` or `main` require two approvals from the platform development team.
|
||||||
|
|
||||||
##### `mntn`
|
##### `fix`
|
||||||
|
|
||||||
Besides the actual changes being committed in an `mntn` branch there is only the:
|
Besides the actual changes being committed in an `fix` branch there is only the:
|
||||||
- `QG 'mntn'`: In addition to validating the actual change the owner of the branch has to ensure the successful execution of the SQG.
|
- `QG 'fix'`: In addition to validating the actual change the owner of the branch has to ensure the successful execution of the SQG.
|
||||||
|
|
||||||
##### `feat`
|
##### `feat`
|
||||||
|
|
||||||
@@ -318,47 +318,29 @@ This branch type requires the most activities on top of the actual development:
|
|||||||
|
|
||||||
#### Branch names
|
#### Branch names
|
||||||
|
|
||||||
Branches created from the `develop` branch have to adhere to the following notation: `<party[-developer]>/<type>/<component>/<details>`:
|
Branches created from the `develop` branch have to adhere to the following notation: `<type>/<responsible_developer>/<details>`:
|
||||||
|
|
||||||
- `<party[-developer]>`: An identifier for the developing party optionally plus the name of the developer or team working on that branch. The following two-letter shorthand notations should be used for the owner:
|
- `<type>`: From the list of branch types explained above:
|
||||||
- Suppliers
|
- `docs`
|
||||||
- `co`: Collabora
|
- `fix`
|
||||||
- `cp`: CryptPad
|
|
||||||
- `el`: Element
|
|
||||||
- `nc`: Nextcloud
|
|
||||||
- `nd`: Nordeck
|
|
||||||
- `op`: OpenProject
|
|
||||||
- `ox`: Open-Xchange
|
|
||||||
- `uv`: Univention
|
|
||||||
- `xw`: XWiki
|
|
||||||
- Other
|
|
||||||
- `pd`: (openDesk) Platform Development
|
|
||||||
- `xx`: Other, not one of the parties mentioned before
|
|
||||||
|
|
||||||
- `<type>`: Based on the branch types described in this document valid values for type are
|
|
||||||
- `docu`
|
|
||||||
- `mntn`
|
|
||||||
- `feat`
|
- `feat`
|
||||||
|
- `<responsible_developer>`: Something that makes you identifiable as owner of the branch, e.g. the first letter of your first name followed by your family name.
|
||||||
- `<component>`: Valid components are
|
- `<details>`: A very short note about what is going to happen in the branch and ideally what component is affected from the following list of components:
|
||||||
- `helmfile`
|
- `helmfile`
|
||||||
- `ci`
|
- `ci`
|
||||||
- `cross-functional`
|
|
||||||
- `docs`
|
- `docs`
|
||||||
- `collabora`
|
- `collabora`
|
||||||
- `cryptpad`
|
- `cryptpad`
|
||||||
- `element`
|
- `element`
|
||||||
- `jitsi`
|
- `jitsi`
|
||||||
- `nextcloud`
|
- `nextcloud`
|
||||||
|
- `nubus`
|
||||||
- `open-xchange`
|
- `open-xchange`
|
||||||
- `openproject`
|
- `openproject`
|
||||||
- `services`
|
- `services`
|
||||||
- `univention-management-stack`
|
|
||||||
- `xwiki`
|
- `xwiki`
|
||||||
|
|
||||||
- `<details>`: A very short note about what is going to happen in the branch
|
Example: `feat/tmueller/bump_nextcloud_to_29.0.0`.
|
||||||
|
|
||||||
Example: `pd-tom/fix/open-xchange/bump_to_8.76`.
|
|
||||||
|
|
||||||
**Note**: The above naming convention is not enforced yet, but please ensure you make use of it.
|
**Note**: The above naming convention is not enforced yet, but please ensure you make use of it.
|
||||||
|
|
||||||
@@ -367,7 +349,7 @@ Example: `pd-tom/fix/open-xchange/bump_to_8.76`.
|
|||||||
Commit messages must adhere to the [Conventional Commit standard](https://www.conventionalcommits.org/en/v1.0.0/#summary). Commits that do not adhere to the standard get rejected by either [Gitlab push rules](https://docs.gitlab.com/ee/user/project/repository/push_rules.html) or the CI.
|
Commit messages must adhere to the [Conventional Commit standard](https://www.conventionalcommits.org/en/v1.0.0/#summary). Commits that do not adhere to the standard get rejected by either [Gitlab push rules](https://docs.gitlab.com/ee/user/project/repository/push_rules.html) or the CI.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
<type>(<scope>): [path/to/issue#1] <short summary>
|
<type>(<scope>): [path/to/issue#1] <short summary>.
|
||||||
│ │ │ │
|
│ │ │ │
|
||||||
│ │ | └─> Summary in present tense, sentence case, with no period at the end
|
│ │ | └─> Summary in present tense, sentence case, with no period at the end
|
||||||
│ │ |
|
│ │ |
|
||||||
@@ -378,7 +360,7 @@ Commit messages must adhere to the [Conventional Commit standard](https://www.co
|
|||||||
└─> Commit Type: chore, ci, docs, feat, fix
|
└─> Commit Type: chore, ci, docs, feat, fix
|
||||||
```
|
```
|
||||||
|
|
||||||
Example: `fix(univention-management-stack): Update standard session timeout of openDesk realm in Keycloak`
|
Example: `fix(open-xchange): Bump to 8.26 to heal issue with functional mailbox provisioning.`
|
||||||
|
|
||||||
**Beware**: The commit messages are an essential part of the [technical releases](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace/-/releases) as the release's notes are generated from the messages.
|
**Beware**: The commit messages are an essential part of the [technical releases](https://gitlab.opencode.de/bmi/opendesk/deployment/sovereign-workplace/-/releases) as the release's notes are generated from the messages.
|
||||||
|
|
||||||
|
|||||||
@@ -5,17 +5,17 @@
|
|||||||
environments:
|
environments:
|
||||||
dev:
|
dev:
|
||||||
values:
|
values:
|
||||||
- "helmfile/environments/dev/values.yaml.gotmpl"
|
- "helmfile/environments/dev/*.yaml.gotmpl"
|
||||||
test:
|
test:
|
||||||
values:
|
values:
|
||||||
- "helmfile/environments/test/values.yaml.gotmpl"
|
- "helmfile/environments/test/*.yaml.gotmpl"
|
||||||
prod:
|
prod:
|
||||||
values:
|
values:
|
||||||
- "helmfile/environments/prod/values.yaml.gotmpl"
|
- "helmfile/environments/prod/*.yaml.gotmpl"
|
||||||
---
|
---
|
||||||
# yamllint disable
|
# yamllint disable
|
||||||
helmfiles:
|
helmfiles:
|
||||||
- path: "./helmfile_generic.yaml"
|
- path: "./helmfile_generic.yaml.gotmpl"
|
||||||
values:
|
values:
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
# {{/*
|
# {{/*
|
||||||
@@ -10,8 +10,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.collabora.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.collabora.registry }}/{{ .Values.charts.collabora.repository }}"
|
||||||
{{ .Values.charts.collabora.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "collabora-online"
|
- name: "collabora-online"
|
||||||
@@ -6,7 +6,7 @@ bases:
|
|||||||
- "../../bases/environments.yaml"
|
- "../../bases/environments.yaml"
|
||||||
---
|
---
|
||||||
helmfiles:
|
helmfiles:
|
||||||
- path: "./helmfile-child.yaml"
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
values:
|
values:
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
...
|
...
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{{/*
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
@@ -7,7 +8,7 @@ autoscaling:
|
|||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
collabora:
|
collabora:
|
||||||
extra_params: "--o:ssl.enable=false --o:ssl.termination=true"
|
extra_params: "--o:ssl.enable=false --o:ssl.termination=true --o:fetch_update_check=0 --o:remote_font_config.url=https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/index.php/apps/richdocuments/settings/fonts.json"
|
||||||
username: "collabora-internal-admin"
|
username: "collabora-internal-admin"
|
||||||
password: {{ .Values.secrets.collabora.adminPassword | quote }}
|
password: {{ .Values.secrets.collabora.adminPassword | quote }}
|
||||||
aliasgroups:
|
aliasgroups:
|
||||||
@@ -17,14 +18,14 @@ fullnameOverride: "collabora"
|
|||||||
|
|
||||||
grafana:
|
grafana:
|
||||||
dashboards:
|
dashboards:
|
||||||
enabled: {{ .Values.grafana.dashboards.enabled }}
|
enabled: {{ .Values.monitoring.grafana.dashboards.enabled }}
|
||||||
labels:
|
labels:
|
||||||
{{ .Values.grafana.dashboards.labels | toYaml | nindent 6 }}
|
{{ .Values.monitoring.grafana.dashboards.labels | toYaml | nindent 6 }}
|
||||||
annotations:
|
annotations:
|
||||||
{{ .Values.grafana.dashboards.annotations | toYaml | nindent 6 }}
|
{{ .Values.monitoring.grafana.dashboards.annotations | toYaml | nindent 6 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.collabora.registry }}/{{ .Values.images.collabora.repository }}"
|
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.collabora.registry }}/{{ .Values.images.collabora.repository }}"
|
||||||
tag: {{ .Values.images.collabora.tag | quote }}
|
tag: {{ .Values.images.collabora.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|
||||||
@@ -88,13 +89,13 @@ podSecurityContext:
|
|||||||
|
|
||||||
prometheus:
|
prometheus:
|
||||||
servicemonitor:
|
servicemonitor:
|
||||||
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }}
|
||||||
labels:
|
labels:
|
||||||
{{ .Values.prometheus.serviceMonitors.labels | toYaml | nindent 6 }}
|
{{ .Values.monitoring.prometheus.serviceMonitors.labels | toYaml | nindent 6 }}
|
||||||
rules:
|
rules:
|
||||||
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
enabled: {{ .Values.monitoring.prometheus.prometheusRules.enabled }}
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
{{ .Values.prometheus.prometheusRules.labels | toYaml | nindent 6 }}
|
{{ .Values.monitoring.prometheus.prometheusRules.labels | toYaml | nindent 6 }}
|
||||||
|
|
||||||
replicaCount: {{ .Values.replicas.collabora }}
|
replicaCount: {{ .Values.replicas.collabora }}
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.cryptpad.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.cryptpad.registry }}/{{ .Values.charts.cryptpad.repository }}"
|
||||||
{{ .Values.charts.cryptpad.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "cryptpad"
|
- name: "cryptpad"
|
||||||
@@ -6,7 +6,7 @@ bases:
|
|||||||
- "../../bases/environments.yaml"
|
- "../../bases/environments.yaml"
|
||||||
---
|
---
|
||||||
helmfiles:
|
helmfiles:
|
||||||
- path: "./helmfile-child.yaml"
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
values:
|
values:
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
...
|
...
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
# https://github.com/cryptpad/helm/blob/main/charts/cryptpad/README.md or
|
# https://github.com/cryptpad/helm/blob/main/charts/cryptpad/README.md or
|
||||||
# https://github.com/cryptpad/helm/blob/main/charts/cryptpad/values.yaml
|
# https://github.com/cryptpad/helm/blob/main/charts/cryptpad/values.yaml
|
||||||
@@ -23,7 +26,7 @@ enableEmbedding: true
|
|||||||
fullnameOverride: "cryptpad"
|
fullnameOverride: "cryptpad"
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.cryptpad.registry }}/{{ .Values.images.cryptpad.repository }}"
|
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.cryptpad.registry }}/{{ .Values.images.cryptpad.repository }}"
|
||||||
tag: {{ .Values.images.cryptpad.tag | quote }}
|
tag: {{ .Values.images.cryptpad.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -10,40 +10,35 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.element.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.element.registry }}/{{ .Values.charts.element.repository }}"
|
||||||
{{ .Values.charts.element.repository }}"
|
|
||||||
- name: "element-well-known-repo"
|
- name: "element-well-known-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.elementWellKnown.verify }}
|
verify: {{ .Values.charts.elementWellKnown.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.elementWellKnown.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.elementWellKnown.registry }}/{{ .Values.charts.elementWellKnown.repository }}"
|
||||||
{{ .Values.charts.elementWellKnown.repository }}"
|
|
||||||
- name: "synapse-web-repo"
|
- name: "synapse-web-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.synapseWeb.verify }}
|
verify: {{ .Values.charts.synapseWeb.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.synapseWeb.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.synapseWeb.registry }}/{{ .Values.charts.synapseWeb.repository }}"
|
||||||
{{ .Values.charts.synapseWeb.repository }}"
|
|
||||||
- name: "synapse-repo"
|
- name: "synapse-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.synapse.verify }}
|
verify: {{ .Values.charts.synapse.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.synapse.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.synapse.registry }}/{{ .Values.charts.synapse.repository }}"
|
||||||
{{ .Values.charts.synapse.repository }}"
|
|
||||||
- name: "synapse-create-account-repo"
|
- name: "synapse-create-account-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.synapseCreateAccount.verify }}
|
verify: {{ .Values.charts.synapseCreateAccount.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.synapseCreateAccount.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.synapseCreateAccount.registry }}/{{ .Values.charts.synapseCreateAccount.repository }}"
|
||||||
{{ .Values.charts.synapseCreateAccount.repository }}"
|
|
||||||
|
|
||||||
# openDesk Matrix Widgets
|
# openDesk Matrix Widgets
|
||||||
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-matrix-widgets
|
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-matrix-widgets
|
||||||
@@ -53,40 +48,35 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixUserVerificationService.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixUserVerificationService.registry }}/{{ .Values.charts.matrixUserVerificationService.repository }}"
|
||||||
{{ .Values.charts.matrixUserVerificationService.repository }}"
|
|
||||||
- name: "matrix-neoboard-widget-repo"
|
- name: "matrix-neoboard-widget-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.matrixNeoboardWidget.verify }}
|
verify: {{ .Values.charts.matrixNeoboardWidget.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixNeoboardWidget.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixNeoboardWidget.registry }}/{{ .Values.charts.matrixNeoboardWidget.repository }}"
|
||||||
{{ .Values.charts.matrixNeoboardWidget.repository }}"
|
|
||||||
- name: "matrix-neochoice-widget-repo"
|
- name: "matrix-neochoice-widget-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.matrixNeoboardWidget.verify }}
|
verify: {{ .Values.charts.matrixNeoboardWidget.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixNeoboardWidget.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixNeoboardWidget.registry }}/{{ .Values.charts.matrixNeoboardWidget.repository }}"
|
||||||
{{ .Values.charts.matrixNeoboardWidget.repository }}"
|
|
||||||
- name: "matrix-neodatefix-widget-repo"
|
- name: "matrix-neodatefix-widget-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.matrixNeodatefixWidget.verify }}
|
verify: {{ .Values.charts.matrixNeodatefixWidget.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixNeodatefixWidget.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixNeodatefixWidget.registry }}/{{ .Values.charts.matrixNeodatefixWidget.repository }}"
|
||||||
{{ .Values.charts.matrixNeodatefixWidget.repository }}"
|
|
||||||
- name: "matrix-neodatefix-bot-repo"
|
- name: "matrix-neodatefix-bot-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.matrixNeodatefixBot.verify }}
|
verify: {{ .Values.charts.matrixNeodatefixBot.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixNeodatefixBot.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.matrixNeodatefixBot.registry }}/{{ .Values.charts.matrixNeodatefixBot.repository }}"
|
||||||
{{ .Values.charts.matrixNeodatefixBot.repository }}"
|
|
||||||
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
@@ -6,7 +6,7 @@ bases:
|
|||||||
- "../../bases/environments.yaml"
|
- "../../bases/environments.yaml"
|
||||||
---
|
---
|
||||||
helmfiles:
|
helmfiles:
|
||||||
- path: "./helmfile-child.yaml"
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
values:
|
values:
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
...
|
...
|
||||||
@@ -1,19 +1,21 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
{{/*
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
configuration:
|
configuration:
|
||||||
endToEndEncryption: true
|
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.nubus }}.{{ .Values.global.domain }}"
|
||||||
|
|
||||||
"net.nordeck.element_web.module.opendesk":
|
"net.nordeck.element_web.module.opendesk":
|
||||||
config:
|
config:
|
||||||
banner:
|
banner:
|
||||||
ics_navigation_json_url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/navigation.json"
|
ics_navigation_json_url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/navigation.json"
|
||||||
ics_silent_url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/silent"
|
ics_silent_url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/silent"
|
||||||
portal_logo_svg_url: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/univention/portal/icons/logos/domain.svg"
|
portal_logo_svg_url: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/univention/portal/icons/logos/domain.svg"
|
||||||
portal_url: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/"
|
portal_url: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/"
|
||||||
custom_css_variables:
|
custom_css_variables:
|
||||||
--cpd-color-bg-action-primary-rest: {{ .Values.theme.colors.primary | quote }}
|
--cpd-color-bg-action-primary-rest: {{ .Values.theme.colors.primary | quote }}
|
||||||
--cpd-color-text-action-accent: {{ .Values.theme.colors.primary | quote }}
|
--cpd-color-text-action-accent: {{ .Values.theme.colors.primary | quote }}
|
||||||
@@ -42,6 +44,8 @@ configuration:
|
|||||||
- org.matrix.msc3819.send.to_device:net.nordeck.whiteboard.connection_signaling
|
- org.matrix.msc3819.send.to_device:net.nordeck.whiteboard.connection_signaling
|
||||||
- org.matrix.msc3819.receive.to_device:net.nordeck.whiteboard.connection_signaling
|
- org.matrix.msc3819.receive.to_device:net.nordeck.whiteboard.connection_signaling
|
||||||
- town.robin.msc3846.turn_servers
|
- town.robin.msc3846.turn_servers
|
||||||
|
- org.matrix.msc4039.upload_file
|
||||||
|
- org.matrix.msc4039.download_file
|
||||||
"https://{{ .Values.global.hosts.matrixNeoChoiceWidget }}.{{ .Values.global.domain }}/*":
|
"https://{{ .Values.global.hosts.matrixNeoChoiceWidget }}.{{ .Values.global.domain }}/*":
|
||||||
preload_approved: true
|
preload_approved: true
|
||||||
capabilities_approved:
|
capabilities_approved:
|
||||||
@@ -121,7 +125,7 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.element.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.element.registry | quote }}
|
||||||
repository: {{ .Values.images.element.repository | quote }}
|
repository: {{ .Values.images.element.repository | quote }}
|
||||||
tag: {{ .Values.images.element.tag | quote }}
|
tag: {{ .Values.images.element.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -26,7 +29,7 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.matrixNeoBoardWidget.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.matrixNeoBoardWidget.registry | quote }}
|
||||||
repository: {{ .Values.images.matrixNeoBoardWidget.repository | quote }}
|
repository: {{ .Values.images.matrixNeoBoardWidget.repository | quote }}
|
||||||
tag: {{ .Values.images.matrixNeoBoardWidget.tag | quote }}
|
tag: {{ .Values.images.matrixNeoBoardWidget.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -26,7 +29,7 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.matrixNeoChoiceWidget.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.matrixNeoChoiceWidget.registry | quote }}
|
||||||
repository: {{ .Values.images.matrixNeoChoiceWidget.repository | quote }}
|
repository: {{ .Values.images.matrixNeoChoiceWidget.repository | quote }}
|
||||||
tag: {{ .Values.images.matrixNeoChoiceWidget.tag | quote }}
|
tag: {{ .Values.images.matrixNeoChoiceWidget.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
deletePodsOnSuccessTimeout: {{ .Values.cleanup.deletePodsOnSuccessTimeout }}
|
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
|
||||||
|
|
||||||
configuration:
|
configuration:
|
||||||
username: "meetings-bot"
|
username: "meetings-bot"
|
||||||
@@ -16,7 +19,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.synapseCreateUser.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.synapseCreateUser.registry | quote }}
|
||||||
url: {{ .Values.images.synapseCreateUser.repository | quote }}
|
url: {{ .Values.images.synapseCreateUser.repository | quote }}
|
||||||
tag: {{ .Values.images.synapseCreateUser.tag | quote }}
|
tag: {{ .Values.images.synapseCreateUser.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
@@ -47,7 +50,7 @@ extraEnvVars:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.matrixNeoDateFixBot.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.matrixNeoDateFixBot.registry | quote }}
|
||||||
repository: {{ .Values.images.matrixNeoDateFixBot.repository | quote }}
|
repository: {{ .Values.images.matrixNeoDateFixBot.repository | quote }}
|
||||||
tag: {{ .Values.images.matrixNeoDateFixBot.tag | quote }}
|
tag: {{ .Values.images.matrixNeoDateFixBot.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
configuration:
|
configuration:
|
||||||
bot:
|
bot:
|
||||||
@@ -31,7 +34,7 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.matrixNeoDateFixWidget.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.matrixNeoDateFixWidget.registry | quote }}
|
||||||
repository: {{ .Values.images.matrixNeoDateFixWidget.repository | quote }}
|
repository: {{ .Values.images.matrixNeoDateFixWidget.repository | quote }}
|
||||||
tag: {{ .Values.images.matrixNeoDateFixWidget.tag | quote }}
|
tag: {{ .Values.images.matrixNeoDateFixWidget.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
deletePodsOnSuccessTimeout: {{ .Values.cleanup.deletePodsOnSuccessTimeout }}
|
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
|
||||||
|
|
||||||
configuration:
|
configuration:
|
||||||
username: "uvs"
|
username: "uvs"
|
||||||
@@ -16,7 +19,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.synapseCreateUser.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.synapseCreateUser.registry | quote }}
|
||||||
url: {{ .Values.images.synapseCreateUser.repository | quote }}
|
url: {{ .Values.images.synapseCreateUser.repository | quote }}
|
||||||
tag: {{ .Values.images.synapseCreateUser.tag | quote }}
|
tag: {{ .Values.images.synapseCreateUser.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -35,7 +38,7 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.matrixUserVerificationService.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.matrixUserVerificationService.registry | quote }}
|
||||||
repository: {{ .Values.images.matrixUserVerificationService.repository | quote }}
|
repository: {{ .Values.images.matrixUserVerificationService.repository | quote }}
|
||||||
tag: {{ .Values.images.matrixUserVerificationService.tag | quote }}
|
tag: {{ .Values.images.matrixUserVerificationService.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
clusterDomain: {{ .Values.cluster.networking.domain }}
|
clusterDomain: {{ .Values.cluster.networking.domain }}
|
||||||
|
|
||||||
@@ -21,6 +24,7 @@ containerSecurityContext:
|
|||||||
|
|
||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
clusterDomain: {{ .Values.cluster.networking.domain | quote }}
|
||||||
hosts:
|
hosts:
|
||||||
{{ .Values.global.hosts | toYaml | nindent 4 }}
|
{{ .Values.global.hosts | toYaml | nindent 4 }}
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
@@ -28,7 +32,7 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.synapseWeb.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.synapseWeb.registry | quote }}
|
||||||
repository: {{ .Values.images.synapseWeb.repository | quote }}
|
repository: {{ .Values.images.synapseWeb.repository | quote }}
|
||||||
tag: {{ .Values.images.synapseWeb.tag | quote }}
|
tag: {{ .Values.images.synapseWeb.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
configuration:
|
configuration:
|
||||||
additionalConfiguration:
|
additionalConfiguration:
|
||||||
@@ -40,11 +43,39 @@ configuration:
|
|||||||
regex: "@.*"
|
regex: "@.*"
|
||||||
url: null
|
url: null
|
||||||
sender_localpart: intercom-service
|
sender_localpart: intercom-service
|
||||||
|
- as_token: {{ .Values.secrets.oxAppsuite.synapseAsToken | quote }}
|
||||||
|
hs_token: {{ .Values.secrets.oxAppsuite.synapseAsToken | quote }}
|
||||||
|
id: ox-appsuite
|
||||||
|
namespaces:
|
||||||
|
users:
|
||||||
|
- exclusive: false
|
||||||
|
regex: "@.*"
|
||||||
|
url: null
|
||||||
|
sender_localpart: ox-appsuite
|
||||||
|
|
||||||
|
presence:
|
||||||
|
enabled: {{ .Values.functional.dataProtection.matrixPresence.enabled }}
|
||||||
|
|
||||||
|
profile:
|
||||||
|
allowUsersToUpdateDisplayname: {{ .Values.functional.chat.matrix.profile.allowUsersToUpdateDisplayname }}
|
||||||
|
|
||||||
|
smtp:
|
||||||
|
senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
|
||||||
|
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
|
||||||
|
port: 25
|
||||||
|
tls: false
|
||||||
|
starttls: false
|
||||||
|
username: ""
|
||||||
|
password: ""
|
||||||
|
|
||||||
oidc:
|
oidc:
|
||||||
clientId: "opendesk-matrix"
|
clientId: "opendesk-matrix"
|
||||||
clientSecret: {{ .Values.secrets.keycloak.clientSecret.matrix | quote }}
|
clientSecret: {{ .Values.secrets.keycloak.clientSecret.matrix | quote }}
|
||||||
issuer: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
|
issuer: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
|
||||||
|
matrixIdLocalpart: {{ if .Values.functional.chat.matrix.profile.useImmutableIdentifierForLocalpart }}"opendesk_useruuid"{{ else }}"opendesk_username"{{ end }}
|
||||||
|
scopes:
|
||||||
|
- "openid"
|
||||||
|
- "opendesk-matrix-scope"
|
||||||
|
|
||||||
turn:
|
turn:
|
||||||
sharedSecret: {{ .Values.turn.credentials | quote }}
|
sharedSecret: {{ .Values.turn.credentials | quote }}
|
||||||
@@ -63,7 +94,7 @@ configuration:
|
|||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.synapseGuestModule.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.synapseGuestModule.registry | quote }}
|
||||||
repository: {{ .Values.images.synapseGuestModule.repository | quote }}
|
repository: {{ .Values.images.synapseGuestModule.repository | quote }}
|
||||||
tag: {{ .Values.images.synapseGuestModule.tag | quote }}
|
tag: {{ .Values.images.synapseGuestModule.tag | quote }}
|
||||||
|
|
||||||
@@ -84,7 +115,7 @@ containerSecurityContext:
|
|||||||
{{ .Values.seLinuxOptions.synapse | toYaml | nindent 4 }}
|
{{ .Values.seLinuxOptions.synapse | toYaml | nindent 4 }}
|
||||||
|
|
||||||
federation:
|
federation:
|
||||||
enabled: {{ .Values.externalServices.matrix.federation.enabled }}
|
enabled: {{ .Values.functional.externalServices.matrix.federation.enabled }}
|
||||||
ingress:
|
ingress:
|
||||||
host: "{{ .Values.global.hosts.synapseFederation }}.{{ .Values.global.domain }}"
|
host: "{{ .Values.global.hosts.synapseFederation }}.{{ .Values.global.domain }}"
|
||||||
enabled: {{ .Values.ingress.enabled }}
|
enabled: {{ .Values.ingress.enabled }}
|
||||||
@@ -102,7 +133,7 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.synapse.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.synapse.registry | quote }}
|
||||||
repository: {{ .Values.images.synapse.repository | quote }}
|
repository: {{ .Values.images.synapse.repository | quote }}
|
||||||
tag: {{ .Values.images.synapse.tag | quote }}
|
tag: {{ .Values.images.synapse.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
configuration:
|
configuration:
|
||||||
e2ee:
|
e2ee:
|
||||||
@@ -30,7 +33,7 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.wellKnown.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.wellKnown.registry | quote }}
|
||||||
repository: {{ .Values.images.wellKnown.repository | quote }}
|
repository: {{ .Values.images.wellKnown.repository | quote }}
|
||||||
tag: {{ .Values.images.wellKnown.tag | quote }}
|
tag: {{ .Values.images.wellKnown.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -5,13 +5,12 @@ repositories:
|
|||||||
# Intercom Service
|
# Intercom Service
|
||||||
# Source: https://gitlab.souvap-univention.de/souvap/tooling/charts/intercom-service
|
# Source: https://gitlab.souvap-univention.de/souvap/tooling/charts/intercom-service
|
||||||
- name: "intercom-service-repo"
|
- name: "intercom-service-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/souvap-univention-de.gpg"
|
keyring: "../../files/gpg-pubkeys/univention-de.gpg"
|
||||||
verify: {{ .Values.charts.intercomService.verify }}
|
verify: {{ .Values.charts.intercomService.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.intercomService.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.intercomService.registry }}/{{ .Values.charts.intercomService.repository }}"
|
||||||
{{ .Values.charts.intercomService.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "intercom-service"
|
- name: "intercom-service"
|
||||||
@@ -6,7 +6,7 @@ bases:
|
|||||||
- "../../bases/environments.yaml"
|
- "../../bases/environments.yaml"
|
||||||
---
|
---
|
||||||
helmfiles:
|
helmfiles:
|
||||||
- path: "./helmfile-child.yaml"
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
values:
|
values:
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
...
|
...
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -52,10 +55,12 @@ ics:
|
|||||||
url: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
|
url: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
|
||||||
audience: "opendesk-oxappsuite"
|
audience: "opendesk-oxappsuite"
|
||||||
nextcloud:
|
nextcloud:
|
||||||
|
origin: {{ .Values.global.hosts.nextcloud | quote }}
|
||||||
|
subdomain: {{ .Values.global.hosts.nextcloud | quote }}
|
||||||
audience: "opendesk-nextcloud"
|
audience: "opendesk-nextcloud"
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.intercom.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.intercom.registry | quote }}
|
||||||
repository: {{ .Values.images.intercom.repository | quote }}
|
repository: {{ .Values.images.intercom.repository | quote }}
|
||||||
tag: {{ .Values.images.intercom.tag | quote }}
|
tag: {{ .Values.images.intercom.tag | quote }}
|
||||||
|
|
||||||
@@ -67,6 +72,26 @@ ingress:
|
|||||||
enabled: {{ .Values.ingress.tls.enabled }}
|
enabled: {{ .Values.ingress.tls.enabled }}
|
||||||
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
provisioning:
|
||||||
|
enabled: true
|
||||||
|
config:
|
||||||
|
nubusBaseUrl: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}"
|
||||||
|
keycloak:
|
||||||
|
url: "http://ums-keycloak:8080/realms/{{ .Values.platform.realm }}/"
|
||||||
|
username: "kcadmin"
|
||||||
|
realm: {{ .Values.platform.realm | quote }}
|
||||||
|
connection:
|
||||||
|
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
|
||||||
|
baseUrl: "http://ums-keycloak:8080"
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-opendesk-keycloak-credentials"
|
||||||
|
key: "admin_password"
|
||||||
|
ics_client:
|
||||||
|
clientSecret: {{ .Values.secrets.keycloak.clientSecret.intercom | quote }}
|
||||||
|
credentialSecret:
|
||||||
|
key: "ics_secret"
|
||||||
|
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
enabled: true
|
enabled: true
|
||||||
fsGroup: 1000
|
fsGroup: 1000
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.jitsi.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.jitsi.registry }}/{{ .Values.charts.jitsi.repository }}"
|
||||||
{{ .Values.charts.jitsi.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "jitsi"
|
- name: "jitsi"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
---
|
|
||||||
bases:
|
|
||||||
- "../../bases/environments.yaml"
|
|
||||||
---
|
|
||||||
helmfiles:
|
|
||||||
- path: "./helmfile-child.yaml"
|
|
||||||
values:
|
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
|
||||||
...
|
|
||||||
12
helmfile/apps/jitsi/helmfile.yaml.gotmpl
Normal file
12
helmfile/apps/jitsi/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{{/*
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
@@ -27,11 +28,11 @@ containerSecurityContext:
|
|||||||
{{ .Values.seLinuxOptions.jitsiKeycloakAdapter | toYaml | nindent 4 }}
|
{{ .Values.seLinuxOptions.jitsiKeycloakAdapter | toYaml | nindent 4 }}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.jitsiKeycloakAdapter.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.jitsiKeycloakAdapter.registry | quote }}
|
||||||
repository: {{ .Values.images.jitsiKeycloakAdapter.repository | quote }}
|
repository: {{ .Values.images.jitsiKeycloakAdapter.repository | quote }}
|
||||||
tag: {{ .Values.images.jitsiKeycloakAdapter.tag | quote }}
|
tag: {{ .Values.images.jitsiKeycloakAdapter.tag | quote }}
|
||||||
|
|
||||||
@@ -48,7 +49,7 @@ jitsi:
|
|||||||
web:
|
web:
|
||||||
replicaCount: {{ .Values.replicas.jitsi }}
|
replicaCount: {{ .Values.replicas.jitsi }}
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.jitsi.registry }}/{{ .Values.images.jitsi.repository }}"
|
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.jitsi.registry }}/{{ .Values.images.jitsi.repository }}"
|
||||||
tag: {{ .Values.images.jitsi.tag | quote }}
|
tag: {{ .Values.images.jitsi.tag | quote }}
|
||||||
ingress:
|
ingress:
|
||||||
enabled: {{ .Values.ingress.enabled }}
|
enabled: {{ .Values.ingress.enabled }}
|
||||||
@@ -79,7 +80,7 @@ jitsi:
|
|||||||
{{ .Values.seLinuxOptions.jitsi | toYaml | nindent 8 }}
|
{{ .Values.seLinuxOptions.jitsi | toYaml | nindent 8 }}
|
||||||
prosody:
|
prosody:
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.prosody.registry }}/{{ .Values.images.prosody.repository }}"
|
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.prosody.registry }}/{{ .Values.images.prosody.repository }}"
|
||||||
tag: {{ .Values.images.prosody.tag | quote }}
|
tag: {{ .Values.images.prosody.tag | quote }}
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
{{- range .Values.global.imagePullSecrets }}
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
@@ -128,7 +129,7 @@ jitsi:
|
|||||||
jicofo:
|
jicofo:
|
||||||
replicaCount: {{ .Values.replicas.jicofo }}
|
replicaCount: {{ .Values.replicas.jicofo }}
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.jicofo.registry }}/{{ .Values.images.jicofo.repository }}"
|
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.jicofo.registry }}/{{ .Values.images.jicofo.repository }}"
|
||||||
tag: {{ .Values.images.jicofo.tag | quote }}
|
tag: {{ .Values.images.jicofo.tag | quote }}
|
||||||
xmpp:
|
xmpp:
|
||||||
password: {{ .Values.secrets.jitsi.jicofoAuthPassword | quote }}
|
password: {{ .Values.secrets.jitsi.jicofoAuthPassword | quote }}
|
||||||
@@ -150,7 +151,7 @@ jitsi:
|
|||||||
jvb:
|
jvb:
|
||||||
replicaCount: {{ .Values.replicas.jvb }}
|
replicaCount: {{ .Values.replicas.jvb }}
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.jvb.registry }}/{{ .Values.images.jvb.repository }}"
|
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.jvb.registry }}/{{ .Values.images.jvb.repository }}"
|
||||||
tag: {{ .Values.images.jvb.tag | quote }}
|
tag: {{ .Values.images.jvb.tag | quote }}
|
||||||
xmpp:
|
xmpp:
|
||||||
password: {{ .Values.secrets.jitsi.jvbAuthPassword | quote }}
|
password: {{ .Values.secrets.jitsi.jvbAuthPassword | quote }}
|
||||||
@@ -173,7 +174,7 @@ jitsi:
|
|||||||
jibri:
|
jibri:
|
||||||
replicaCount: {{ .Values.replicas.jibri }}
|
replicaCount: {{ .Values.replicas.jibri }}
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.jibri.registry }}/{{ .Values.images.jibri.repository }}"
|
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.jibri.registry }}/{{ .Values.images.jibri.repository }}"
|
||||||
tag: {{ .Values.images.jibri.tag | quote }}
|
tag: {{ .Values.images.jibri.tag | quote }}
|
||||||
recorder:
|
recorder:
|
||||||
password: {{ .Values.secrets.jitsi.jibriRecorderPassword | quote }}
|
password: {{ .Values.secrets.jitsi.jibriRecorderPassword | quote }}
|
||||||
@@ -211,7 +212,7 @@ patchJVB:
|
|||||||
{{ .Values.seLinuxOptions.jitsiPatchJVB | toYaml | nindent 6 }}
|
{{ .Values.seLinuxOptions.jitsiPatchJVB | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.jitsiPatchJVB.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.jitsiPatchJVB.registry | quote }}
|
||||||
repository: {{ .Values.images.jitsiPatchJVB.repository | quote }}
|
repository: {{ .Values.images.jitsiPatchJVB.repository | quote }}
|
||||||
tag: {{ .Values.images.jitsiPatchJVB.tag | quote }}
|
tag: {{ .Values.images.jitsiPatchJVB.tag | quote }}
|
||||||
replicaCount: {{ .Values.replicas.jitsiKeycloakAdapter }}
|
replicaCount: {{ .Values.replicas.jitsiKeycloakAdapter }}
|
||||||
|
|||||||
30
helmfile/apps/migrations-post/helmfile-child.yaml.gotmpl
Normal file
30
helmfile/apps/migrations-post/helmfile-child.yaml.gotmpl
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
repositories:
|
||||||
|
# openDesk Migrations
|
||||||
|
# Source:
|
||||||
|
- name: "openproject-migrations-repo"
|
||||||
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
|
verify: {{ .Values.charts.migrations.verify }}
|
||||||
|
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
|
||||||
|
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
|
||||||
|
oci: true
|
||||||
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.migrations.registry }}/{{ .Values.charts.migrations.repository }}"
|
||||||
|
|
||||||
|
releases:
|
||||||
|
- name: "opendesk-migrations-post"
|
||||||
|
chart: "openproject-migrations-repo/{{ .Values.charts.migrations.name }}"
|
||||||
|
version: "{{ .Values.charts.migrations.version }}"
|
||||||
|
wait: true
|
||||||
|
waitForJobs: true
|
||||||
|
values:
|
||||||
|
- "values.yaml.gotmpl"
|
||||||
|
- "../../shared/migrations.yaml.gotmpl"
|
||||||
|
installed: {{ .Values.migrations.enabled }}
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
commonLabels:
|
||||||
|
deploy-stage: "component-0"
|
||||||
|
component: "opendesk-migrations"
|
||||||
|
...
|
||||||
11
helmfile/apps/migrations-post/helmfile.yaml.gotmpl
Normal file
11
helmfile/apps/migrations-post/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
8
helmfile/apps/migrations-post/values.yaml.gotmpl
Normal file
8
helmfile/apps/migrations-post/values.yaml.gotmpl
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{{/*
|
||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
|
---
|
||||||
|
migrations:
|
||||||
|
stage: "POST"
|
||||||
|
...
|
||||||
30
helmfile/apps/migrations-pre/helmfile-child.yaml.gotmpl
Normal file
30
helmfile/apps/migrations-pre/helmfile-child.yaml.gotmpl
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
repositories:
|
||||||
|
# openDesk Migrations
|
||||||
|
# Source:
|
||||||
|
- name: "openproject-migrations-repo"
|
||||||
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
|
verify: {{ .Values.charts.migrations.verify }}
|
||||||
|
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
|
||||||
|
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
|
||||||
|
oci: true
|
||||||
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.migrations.registry }}/{{ .Values.charts.migrations.repository }}"
|
||||||
|
|
||||||
|
releases:
|
||||||
|
- name: "opendesk-migrations-pre"
|
||||||
|
chart: "openproject-migrations-repo/{{ .Values.charts.migrations.name }}"
|
||||||
|
version: "{{ .Values.charts.migrations.version }}"
|
||||||
|
wait: true
|
||||||
|
waitForJobs: true
|
||||||
|
values:
|
||||||
|
- "values.yaml.gotmpl"
|
||||||
|
- "../../shared/migrations.yaml.gotmpl"
|
||||||
|
installed: {{ .Values.migrations.enabled }}
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
commonLabels:
|
||||||
|
deploy-stage: "component-0"
|
||||||
|
component: "opendesk-migrations"
|
||||||
|
...
|
||||||
11
helmfile/apps/migrations-pre/helmfile.yaml.gotmpl
Normal file
11
helmfile/apps/migrations-pre/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
8
helmfile/apps/migrations-pre/values.yaml.gotmpl
Normal file
8
helmfile/apps/migrations-pre/values.yaml.gotmpl
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{{/*
|
||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
|
---
|
||||||
|
migrations:
|
||||||
|
stage: "PRE"
|
||||||
|
...
|
||||||
@@ -10,16 +10,14 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.nextcloudManagement.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.nextcloudManagement.registry }}/{{ .Values.charts.nextcloudManagement.repository }}"
|
||||||
{{ .Values.charts.nextcloudManagement.repository }}"
|
|
||||||
- name: "nextcloud-repo"
|
- name: "nextcloud-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.nextcloud.verify }}
|
verify: {{ .Values.charts.nextcloud.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.nextcloud.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.nextcloud.registry }}/{{ .Values.charts.nextcloud.repository }}"
|
||||||
{{ .Values.charts.nextcloud.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "opendesk-nextcloud-management"
|
- name: "opendesk-nextcloud-management"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
---
|
|
||||||
bases:
|
|
||||||
- "../../bases/environments.yaml"
|
|
||||||
---
|
|
||||||
helmfiles:
|
|
||||||
- path: "./helmfile-child.yaml"
|
|
||||||
values:
|
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
|
||||||
...
|
|
||||||
12
helmfile/apps/nextcloud/helmfile.yaml.gotmpl
Normal file
12
helmfile/apps/nextcloud/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
@@ -14,7 +14,7 @@ additionalAnnotations:
|
|||||||
intents.otterize.com/service-name: "opendesk-nextcloud-php"
|
intents.otterize.com/service-name: "opendesk-nextcloud-php"
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
|
|
||||||
configuration:
|
configuration:
|
||||||
administrator:
|
administrator:
|
||||||
@@ -35,6 +35,9 @@ configuration:
|
|||||||
value: {{ .Values.cache.nextcloud.password | default .Values.secrets.redis.password | quote }}
|
value: {{ .Values.cache.nextcloud.password | default .Values.secrets.redis.password | quote }}
|
||||||
host: {{ .Values.cache.nextcloud.host | quote }}
|
host: {{ .Values.cache.nextcloud.host | quote }}
|
||||||
port: {{ .Values.cache.nextcloud.port | quote }}
|
port: {{ .Values.cache.nextcloud.port | quote }}
|
||||||
|
collabora:
|
||||||
|
# internalWopiUrl: ""
|
||||||
|
wopiAllowlist: {{ join ", " ( concat .Values.cluster.networking.cidr .Values.cluster.networking.incomingCIDR ) | quote }}
|
||||||
database:
|
database:
|
||||||
host: {{ .Values.databases.nextcloud.host | quote }}
|
host: {{ .Values.databases.nextcloud.host | quote }}
|
||||||
port: {{ .Values.databases.nextcloud.port | quote }}
|
port: {{ .Values.databases.nextcloud.port | quote }}
|
||||||
@@ -45,7 +48,7 @@ configuration:
|
|||||||
value: {{ .Values.databases.nextcloud.password | default .Values.secrets.mariadb.nextcloudUser | quote }}
|
value: {{ .Values.databases.nextcloud.password | default .Values.secrets.mariadb.nextcloudUser | quote }}
|
||||||
ldap:
|
ldap:
|
||||||
host: {{ .Values.ldap.host | quote }}
|
host: {{ .Values.ldap.host | quote }}
|
||||||
password: {{ .Values.secrets.univentionManagementStack.ldapSearch.nextcloud | quote }}
|
password: {{ .Values.secrets.nubus.ldapSearch.nextcloud | quote }}
|
||||||
adminGroupName: "managed-by-attribute-FileshareAdmin"
|
adminGroupName: "managed-by-attribute-FileshareAdmin"
|
||||||
objectstore:
|
objectstore:
|
||||||
auth:
|
auth:
|
||||||
@@ -70,14 +73,37 @@ configuration:
|
|||||||
value: "opendesk_username"
|
value: "opendesk_username"
|
||||||
password:
|
password:
|
||||||
value: {{ .Values.secrets.centralnavigation.apiKey | quote }}
|
value: {{ .Values.secrets.centralnavigation.apiKey | quote }}
|
||||||
|
sharing:
|
||||||
|
allowLinks: {{ .Values.functional.filestore.sharing.external.enabled }}
|
||||||
|
allowMailNotification: {{ .Values.functional.filestore.sharing.external.enabled }}
|
||||||
|
allowPublicUpload: {{ .Values.functional.filestore.sharing.external.enabled }}
|
||||||
|
enforceLinksPassword: {{ .Values.functional.filestore.sharing.external.enforcePasswords }}
|
||||||
|
enforcePasswordProtection: {{ .Values.functional.filestore.sharing.external.enforcePasswords }}
|
||||||
|
defaultInternalExpireEnabled: {{ .Values.functional.filestore.sharing.internal.expiry.activeByDefault }}
|
||||||
|
defaultInternalExpireEnforced: {{ .Values.functional.filestore.sharing.internal.expiry.enforced }}
|
||||||
|
defaultInternalExpireDays: {{ .Values.functional.filestore.sharing.internal.expiry.defaultDays | quote }}
|
||||||
|
defaultExternalExpireEnabled: {{ .Values.functional.filestore.sharing.external.expiry.activeByDefault }}
|
||||||
|
defaultExternalExpireEnforced: {{ .Values.functional.filestore.sharing.external.expiry.enforced }}
|
||||||
|
defaultExternalExpireDays: {{ .Values.functional.filestore.sharing.external.expiry.defaultDays | quote }}
|
||||||
smtp:
|
smtp:
|
||||||
auth:
|
auth:
|
||||||
|
enabled: false
|
||||||
username:
|
username:
|
||||||
value: {{ .Values.smtp.username | quote }}
|
value: ""
|
||||||
password:
|
password:
|
||||||
value: {{ .Values.smtp.password | quote }}
|
value: ""
|
||||||
host: {{ .Values.smtp.host | quote }}
|
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
|
||||||
port: {{ .Values.smtp.port | quote }}
|
port: 25
|
||||||
|
fromAddress: {{ .Values.smtp.localpartNoReply | quote }}
|
||||||
|
mailDomain: "{{ .Values.global.domain }}"
|
||||||
|
security: ""
|
||||||
|
skipVerifyPeer: true
|
||||||
|
quota:
|
||||||
|
default: "{{ .Values.functional.filestore.quota.default }} GB"
|
||||||
|
retentionObligation:
|
||||||
|
trashbin: {{ .Values.functional.filestore.nextcloud.retentionObligation.trashbin | quote }}
|
||||||
|
versions: {{ .Values.functional.filestore.nextcloud.retentionObligation.versions | quote }}
|
||||||
|
|
||||||
serverinfo:
|
serverinfo:
|
||||||
token: {{ .Values.secrets.nextcloud.metricsToken | quote }}
|
token: {{ .Values.secrets.nextcloud.metricsToken | quote }}
|
||||||
|
|
||||||
@@ -98,11 +124,11 @@ containerSecurityContext:
|
|||||||
{{ .Values.seLinuxOptions.nextcloudManagement | toYaml | nindent 4 }}
|
{{ .Values.seLinuxOptions.nextcloudManagement | toYaml | nindent 4 }}
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"1"{{ end }}
|
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"2"{{ end }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudManagement.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nextcloudManagement.registry | quote }}
|
||||||
repository: "{{ .Values.images.nextcloudManagement.repository }}"
|
repository: {{ .Values.images.nextcloudManagement.repository | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
tag: {{ .Values.images.nextcloudManagement.tag | quote }}
|
tag: {{ .Values.images.nextcloudManagement.tag | quote }}
|
||||||
|
|
||||||
|
|||||||
@@ -28,19 +28,19 @@ exporter:
|
|||||||
seLinuxOptions:
|
seLinuxOptions:
|
||||||
{{ .Values.seLinuxOptions.nextcloudExporter | toYaml | nindent 6 }}
|
{{ .Values.seLinuxOptions.nextcloudExporter | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudExporter.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nextcloudExporter.registry | quote }}
|
||||||
repository: "{{ .Values.images.nextcloudExporter.repository }}"
|
repository: "{{ .Values.images.nextcloudExporter.repository }}"
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
tag: {{ .Values.images.nextcloudExporter.tag | quote }}
|
tag: {{ .Values.images.nextcloudExporter.tag | quote }}
|
||||||
prometheus:
|
prometheus:
|
||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }}
|
||||||
labels:
|
labels:
|
||||||
{{ .Values.prometheus.serviceMonitors.labels | toYaml | nindent 8 }}
|
{{ .Values.monitoring.prometheus.serviceMonitors.labels | toYaml | nindent 8 }}
|
||||||
prometheusRule:
|
prometheusRule:
|
||||||
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
enabled: {{ .Values.monitoring.prometheus.prometheusRules.enabled }}
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
{{ .Values.prometheus.prometheusRules.labels | toYaml | nindent 8 }}
|
{{ .Values.monitoring.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 }}
|
||||||
@@ -66,6 +66,7 @@ php:
|
|||||||
value: "nextcloud_user"
|
value: "nextcloud_user"
|
||||||
password:
|
password:
|
||||||
value: {{ .Values.databases.nextcloud.password | default .Values.secrets.mariadb.nextcloudUser | quote }}
|
value: {{ .Values.databases.nextcloud.password | default .Values.secrets.mariadb.nextcloudUser | quote }}
|
||||||
|
trustedProxies: {{ join " " .Values.cluster.networking.cidr | quote }}
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -84,21 +85,21 @@ php:
|
|||||||
cron:
|
cron:
|
||||||
successfulJobsHistoryLimit: {{ if .Values.debug.enabled }}"3"{{ else }}"0"{{ end }}
|
successfulJobsHistoryLimit: {{ if .Values.debug.enabled }}"3"{{ else }}"0"{{ end }}
|
||||||
debug:
|
debug:
|
||||||
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"1"{{ end }}
|
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"2"{{ end }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudPHP.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nextcloudPHP.registry | quote }}
|
||||||
repository: "{{ .Values.images.nextcloudPHP.repository }}"
|
repository: "{{ .Values.images.nextcloudPHP.repository }}"
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
tag: {{ .Values.images.nextcloudPHP.tag | quote }}
|
tag: {{ .Values.images.nextcloudPHP.tag | quote }}
|
||||||
prometheus:
|
prometheus:
|
||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }}
|
||||||
labels:
|
labels:
|
||||||
{{ .Values.prometheus.serviceMonitors.labels | toYaml | nindent 8 }}
|
{{ .Values.monitoring.prometheus.serviceMonitors.labels | toYaml | nindent 8 }}
|
||||||
prometheusRule:
|
prometheusRule:
|
||||||
enabled: {{ .Values.prometheus.prometheusRules.enabled }}
|
enabled: {{ .Values.monitoring.prometheus.prometheusRules.enabled }}
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
{{ .Values.prometheus.prometheusRules.labels | toYaml | nindent 8 }}
|
{{ .Values.monitoring.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 }}
|
||||||
@@ -107,6 +108,7 @@ apache2:
|
|||||||
configuration:
|
configuration:
|
||||||
php:
|
php:
|
||||||
host: "opendesk-nextcloud-php.{{ .Release.Namespace }}.svc.{{ .Values.cluster.networking.domain }}"
|
host: "opendesk-nextcloud-php.{{ .Release.Namespace }}.svc.{{ .Values.cluster.networking.domain }}"
|
||||||
|
trustedProxies: {{ join " " .Values.cluster.networking.cidr | quote }}
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -136,11 +138,12 @@ apache2:
|
|||||||
tls:
|
tls:
|
||||||
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudApache2.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nextcloudApache2.registry | quote }}
|
||||||
repository: {{ .Values.images.nextcloudApache2.repository | quote }}
|
repository: {{ .Values.images.nextcloudApache2.repository | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
tag: {{ .Values.images.nextcloudApache2.tag | quote }}
|
tag: {{ .Values.images.nextcloudApache2.tag | quote }}
|
||||||
replicaCount: {{ .Values.replicas.nextcloudApache2 }}
|
replicaCount: {{ .Values.replicas.nextcloudApache2 }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.nextcloudApache2 | toYaml | nindent 4 }}
|
{{ .Values.resources.nextcloudApache2 | toYaml | nindent 4 }}
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -3,15 +3,14 @@
|
|||||||
---
|
---
|
||||||
repositories:
|
repositories:
|
||||||
# Univention Management Stack Umbrella Chart
|
# Univention Management Stack Umbrella Chart
|
||||||
- name: "ums"
|
- name: "nubus"
|
||||||
keyring: "../../files/gpg-pubkeys/univention-de.gpg"
|
keyring: "../../files/gpg-pubkeys/univention-de.gpg"
|
||||||
verify: {{ .Values.charts.ums.verify }}
|
verify: {{ .Values.charts.nubus.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
|
||||||
url:
|
url:
|
||||||
"{{ .Values.global.helmRegistry | default .Values.charts.ums.registry }}/\
|
"{{ .Values.global.helmRegistry | default .Values.charts.nubus.registry }}/{{ .Values.charts.nubus.repository }}"
|
||||||
{{ .Values.charts.ums.repository }}"
|
|
||||||
# OpenDesk Keycloak Bootstrap Chart
|
# OpenDesk Keycloak Bootstrap Chart
|
||||||
- name: "opendesk-keycloak-bootstrap-repo"
|
- name: "opendesk-keycloak-bootstrap-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
@@ -19,17 +18,18 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.opendeskKeycloakBootstrap.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.opendeskKeycloakBootstrap.registry }}/{{ .Values.charts.opendeskKeycloakBootstrap.repository }}"
|
||||||
{{ .Values.charts.opendeskKeycloakBootstrap.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
# Univention Management Stack Umbrella Chart
|
# Univention Management Stack Umbrella Chart
|
||||||
- name: "ums"
|
- name: "ums"
|
||||||
chart: "ums/{{ .Values.charts.ums.name }}"
|
chart: "nubus/{{ .Values.charts.nubus.name }}"
|
||||||
version: "{{ .Values.charts.ums.version }}"
|
version: "{{ .Values.charts.nubus.version }}"
|
||||||
values:
|
values:
|
||||||
- "values-umbrella.yaml.gotmpl"
|
- "values-nubus.yaml.gotmpl"
|
||||||
installed: {{ .Values.univentionManagementStack.enabled }}
|
- "values-opendesk-customization.yaml.gotmpl"
|
||||||
|
- "values-opendesk-images.yaml.gotmpl"
|
||||||
|
installed: {{ .Values.nubus.enabled }}
|
||||||
timeout: 900
|
timeout: 900
|
||||||
# OpenDesk Keycloak Bootstrap Chart
|
# OpenDesk Keycloak Bootstrap Chart
|
||||||
- name: "opendesk-keycloak-bootstrap"
|
- name: "opendesk-keycloak-bootstrap"
|
||||||
@@ -39,10 +39,10 @@ releases:
|
|||||||
- "values-opendesk-keycloak-bootstrap.yaml.gotmpl"
|
- "values-opendesk-keycloak-bootstrap.yaml.gotmpl"
|
||||||
needs:
|
needs:
|
||||||
- "ums"
|
- "ums"
|
||||||
installed: {{ .Values.univentionManagementStack.enabled }}
|
installed: {{ .Values.nubus.enabled }}
|
||||||
timeout: 900
|
timeout: 900
|
||||||
|
|
||||||
commonLabels:
|
commonLabels:
|
||||||
deploy-stage: "component-1"
|
deploy-stage: "component-1"
|
||||||
component: "univention-management-stack"
|
component: "nubus"
|
||||||
...
|
...
|
||||||
12
helmfile/apps/nubus/helmfile.yaml.gotmpl
Normal file
12
helmfile/apps/nubus/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
497
helmfile/apps/nubus/values-nubus.yaml.gotmpl
Normal file
497
helmfile/apps/nubus/values-nubus.yaml.gotmpl
Normal file
@@ -0,0 +1,497 @@
|
|||||||
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
|
---
|
||||||
|
global:
|
||||||
|
nubusDeployment: true
|
||||||
|
ldap:
|
||||||
|
baseDn: {{ .Values.ldap.baseDn | quote }}
|
||||||
|
domainName: {{ .Values.global.domain | quote }}
|
||||||
|
domain: {{ .Values.global.domain | quote }}
|
||||||
|
subDomains:
|
||||||
|
portal: {{ .Values.global.hosts.nubus | quote }}
|
||||||
|
keycloak: {{ .Values.global.hosts.keycloak | quote }}
|
||||||
|
ingressClass: {{ .Values.ingress.ingressClassName | default "nginx" | quote }}
|
||||||
|
certManagerIssuer: {{ .Values.certificate.issuerRef.name | quote }}
|
||||||
|
nubusMasterPassword: {{ env "MASTER_PASSWORD" | default "sovereign-workplace" | quote }}
|
||||||
|
keycloak:
|
||||||
|
realm: {{ .Values.platform.realm | quote }}
|
||||||
|
objectStorage:
|
||||||
|
bucket: {{ .Values.objectstores.nubus.bucket | quote }}
|
||||||
|
connection:
|
||||||
|
host: "minio"
|
||||||
|
port: "9000"
|
||||||
|
protocol: "http"
|
||||||
|
credentialOverride:
|
||||||
|
ldapServer:
|
||||||
|
adminPassword: {{ .Values.secrets.nubus.ldapSecret | quote}}
|
||||||
|
defaultUsers:
|
||||||
|
defaultAdminPassword: {{ .Values.secrets.nubus.defaultAccounts.adminPassword | quote}}
|
||||||
|
defaultUserPassword: {{ .Values.secrets.nubus.defaultAccounts.userPassword | quote}}
|
||||||
|
defaultAdministratorPassword: {{ .Values.secrets.nubus.systemAccounts.administratorPassword | quote}}
|
||||||
|
portalConsumer:
|
||||||
|
minio:
|
||||||
|
accessKey: {{ .Values.objectstores.nubus.username | quote }}
|
||||||
|
secretKey: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
|
||||||
|
provisioningApi:
|
||||||
|
password: {{ .Values.secrets.nubus.portalConsumer.provisioningApiPassword | quote}}
|
||||||
|
provisioning:
|
||||||
|
api:
|
||||||
|
adminPassword: {{ .Values.secrets.nubus.provisioning.api.adminPassword | quote}}
|
||||||
|
natsPassword: {{ .Values.secrets.nubus.provisioning.api.natsPassword | quote}}
|
||||||
|
prefillPassword: {{ .Values.secrets.nubus.provisioning.api.prefillPassword | quote}}
|
||||||
|
udmTransformerPassword: {{ .Values.secrets.nubus.provisioning.api.udmTransformerPassword | quote}}
|
||||||
|
dispatcher:
|
||||||
|
natsPassword: {{ .Values.secrets.nubus.provisioning.dispatcherNatsPassword | quote}}
|
||||||
|
nats:
|
||||||
|
adminPassword: {{ .Values.secrets.nats.natsAdminPassword | quote}}
|
||||||
|
prefill:
|
||||||
|
natsPassword: {{ .Values.secrets.nubus.provisioning.prefillNatsPassword | quote}}
|
||||||
|
udmTransformer:
|
||||||
|
natsPassword: {{ .Values.secrets.nubus.provisioning.udmTransformerNatsPassword | quote}}
|
||||||
|
selfserviceConsumer:
|
||||||
|
provisioningApi:
|
||||||
|
password: {{ .Values.secrets.nubus.selfserviceConsumer.provisioningApiPassword | quote}}
|
||||||
|
|
||||||
|
# -- Extensions to load. Add entries to load additional extensions into Nubus.
|
||||||
|
extensions:
|
||||||
|
- name: "ox"
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusOxExtension.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusOxExtension.repository }}
|
||||||
|
tag: {{ .Values.images.nubusOxExtension.tag }}
|
||||||
|
imagePullPolicy: {{ .Values.global.imagePullPolicy }}
|
||||||
|
- name: "opendesk"
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusOpendeskExtension.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusOpendeskExtension.repository }}
|
||||||
|
imagePullPolicy: {{ .Values.global.imagePullPolicy }}
|
||||||
|
tag: {{ .Values.images.nubusOpendeskExtension.tag }}
|
||||||
|
|
||||||
|
# -- Allows to configure the system extensions to load. This is intended for
|
||||||
|
# internal usage, prefer to use `global.extensions` for user configured
|
||||||
|
# extensions.
|
||||||
|
systemExtensions:
|
||||||
|
- name: "portal"
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusPortalExtension.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusPortalExtension.repository }}
|
||||||
|
tag: {{ .Values.images.nubusPortalExtension.tag }}
|
||||||
|
imagePullPolicy: {{ .Values.global.imagePullPolicy }}
|
||||||
|
imagePullPolicy: "IfNotPresent"
|
||||||
|
configUcr:
|
||||||
|
directory:
|
||||||
|
manager:
|
||||||
|
web:
|
||||||
|
modules:
|
||||||
|
users:
|
||||||
|
user:
|
||||||
|
add:
|
||||||
|
default: cn=openDesk User,cn=templates,cn=univention,{{ .Values.ldap.baseDn }}
|
||||||
|
properties:
|
||||||
|
description:
|
||||||
|
syntax: TextArea
|
||||||
|
firstname:
|
||||||
|
required: "true"
|
||||||
|
mailPrimaryAddress:
|
||||||
|
required: "true"
|
||||||
|
username:
|
||||||
|
syntax: uid
|
||||||
|
search:
|
||||||
|
autosearch: "False"
|
||||||
|
wizard:
|
||||||
|
property:
|
||||||
|
invite:
|
||||||
|
default: "True"
|
||||||
|
overridePWLength:
|
||||||
|
default: "False"
|
||||||
|
visible: "False"
|
||||||
|
pwdChangeNextLogin:
|
||||||
|
default: "True"
|
||||||
|
visible: "False"
|
||||||
|
wizard:
|
||||||
|
disabled: "No"
|
||||||
|
|
||||||
|
ucs:
|
||||||
|
web:
|
||||||
|
theme: light
|
||||||
|
|
||||||
|
umc:
|
||||||
|
cookie-banner:
|
||||||
|
show: "false"
|
||||||
|
login:
|
||||||
|
password-complexity-message:
|
||||||
|
de: "Das Passwort muss den folgenden Anforderungen entsprechen:<br><ul><li>Mindestlänge: 8 Zeichen</li></ul>Anmerkung: Wird befinden uns nicht in einer Produktivumgebung."
|
||||||
|
en: "Password must comply with the following rules:<br><ul><li>Minimum length: 8 characters</li></ul>Note: We are in a non production (dev/test/demo) system."
|
||||||
|
module:
|
||||||
|
udm:
|
||||||
|
oxmail:
|
||||||
|
oxcontext:
|
||||||
|
disabled: "True"
|
||||||
|
portals:
|
||||||
|
all:
|
||||||
|
disabled: "True"
|
||||||
|
self-service:
|
||||||
|
passwordreset:
|
||||||
|
token_validity_period: 172800
|
||||||
|
|
||||||
|
ingress:
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
# Nubus bundled services
|
||||||
|
postgresql:
|
||||||
|
enabled: false
|
||||||
|
provisioning:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
minio:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
# Nubus services which use customer supplied services
|
||||||
|
keycloak:
|
||||||
|
keycloak:
|
||||||
|
auth:
|
||||||
|
username: "kcadmin"
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-opendesk-keycloak-credentials"
|
||||||
|
key: "admin_password"
|
||||||
|
postgresql:
|
||||||
|
connection:
|
||||||
|
host: {{ .Values.databases.keycloak.host | quote }}
|
||||||
|
port: {{ .Values.databases.keycloak.port | quote }}
|
||||||
|
auth:
|
||||||
|
username: {{ .Values.databases.keycloak.username | quote }}
|
||||||
|
database: {{ .Values.databases.keycloak.name | quote }}
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-keycloak-postgresql-opendesk-credentials"
|
||||||
|
key: "keycloakDatabasePassword"
|
||||||
|
config:
|
||||||
|
exposeAdminConsole: {{ .Values.debug.enabled }}
|
||||||
|
|
||||||
|
nubusGuardian:
|
||||||
|
provisioning:
|
||||||
|
enabled: false
|
||||||
|
config:
|
||||||
|
nubusBaseUrl: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain }}
|
||||||
|
keycloak:
|
||||||
|
realm: {{ .Values.platform.realm | quote }}
|
||||||
|
username: "kcadmin"
|
||||||
|
connection:
|
||||||
|
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
|
||||||
|
baseUrl: "http://ums-keycloak:8080"
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-opendesk-keycloak-credentials"
|
||||||
|
key: "admin_password"
|
||||||
|
managementApi:
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-opendesk-guardian-client-secret"
|
||||||
|
key: "managementApiClientSecret"
|
||||||
|
ingress:
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
postgresql:
|
||||||
|
connection:
|
||||||
|
host: {{ .Values.databases.umsGuardianManagementApi.host | quote }}
|
||||||
|
port: {{ .Values.databases.umsGuardianManagementApi.port | quote }}
|
||||||
|
auth:
|
||||||
|
username: {{ .Values.databases.umsGuardianManagementApi.username | quote }}
|
||||||
|
database: {{ .Values.databases.umsGuardianManagementApi.name | quote }}
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-guardian-postgresql-opendesk-credentials"
|
||||||
|
key: "guardianDatabasePassword"
|
||||||
|
|
||||||
|
nubusNotificationsApi:
|
||||||
|
postgresql:
|
||||||
|
connection:
|
||||||
|
host: {{ .Values.databases.umsNotificationsApi.host | quote }}
|
||||||
|
port: {{ .Values.databases.umsNotificationsApi.port | quote }}
|
||||||
|
auth:
|
||||||
|
username: {{ .Values.databases.umsNotificationsApi.username | quote }}
|
||||||
|
database: {{ .Values.databases.umsNotificationsApi.name | quote }}
|
||||||
|
existingSecret: "ums-notifications-api-postgresql-opendesk-credentials"
|
||||||
|
ingress:
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
|
||||||
|
nubusKeycloakExtensions:
|
||||||
|
keycloak:
|
||||||
|
auth:
|
||||||
|
username: "kcadmin"
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-opendesk-keycloak-credentials"
|
||||||
|
key: "admin_password"
|
||||||
|
proxy:
|
||||||
|
ingress:
|
||||||
|
paths:
|
||||||
|
{{- if .Values.debug.enabled }}
|
||||||
|
- pathType: "Prefix"
|
||||||
|
path: "/admin/"
|
||||||
|
{{- end }}
|
||||||
|
- pathType: "Prefix"
|
||||||
|
path: "/realms/"
|
||||||
|
- pathType: "Prefix"
|
||||||
|
path: "/js/"
|
||||||
|
- pathType: "Prefix"
|
||||||
|
path: "/resources/"
|
||||||
|
- pathType: "Prefix"
|
||||||
|
path: "/fingerprintjs"
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
|
||||||
|
postgresql:
|
||||||
|
connection:
|
||||||
|
host: {{ .Values.databases.keycloakExtension.host | quote }}
|
||||||
|
port: {{ .Values.databases.keycloakExtension.port | quote }}
|
||||||
|
auth:
|
||||||
|
database: {{ .Values.databases.keycloakExtension.name | quote }}
|
||||||
|
username: {{ .Values.databases.keycloakExtension.username | quote }}
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-keycloak-extensions-postgresql-opendesk-credentials"
|
||||||
|
key: "umcKeycloakExtensionsDatabasePassword"
|
||||||
|
smtp:
|
||||||
|
connection:
|
||||||
|
host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
|
||||||
|
port: 25
|
||||||
|
ssl: false
|
||||||
|
starttls: false
|
||||||
|
auth:
|
||||||
|
enabled: false
|
||||||
|
username: ""
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-keycloak-extensions-smtp-opendesk-credentials"
|
||||||
|
key: "umcKeycloakExtensionsSmtpPassword"
|
||||||
|
handler:
|
||||||
|
appConfig:
|
||||||
|
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
|
||||||
|
newDeviceLoginSubject: "New device login on your {{ .Values.theme.texts.productName }} account"
|
||||||
|
mailFrom: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
|
||||||
|
|
||||||
|
nubusPortalFrontend:
|
||||||
|
ingress:
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
nubusPortalListener:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
nubusPortalConsumer:
|
||||||
|
enabled: true
|
||||||
|
portalConsumer:
|
||||||
|
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
|
||||||
|
objectStorageEndpoint: {{ .Values.objectstores.nubus.endpoint | default (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
||||||
|
objectStorageBucket: {{ .Values.objectstores.nubus.bucket | quote }}
|
||||||
|
provisioningApi:
|
||||||
|
auth:
|
||||||
|
username: "portal-consumer"
|
||||||
|
|
||||||
|
nubusPortalServer:
|
||||||
|
portalServer:
|
||||||
|
objectStorageEndpoint: {{ .Values.objectstores.nubus.endpoint | default (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
|
||||||
|
objectStorageBucket: {{ .Values.objectstores.nubus.bucket | quote }}
|
||||||
|
objectStorageCredentialSecret:
|
||||||
|
name: "ums-portal-server-minio-opendesk-credentials"
|
||||||
|
accessKeyKey: "access-key-id"
|
||||||
|
secretKeyKey: "secret-key-id"
|
||||||
|
centralNavigation:
|
||||||
|
enabled: true
|
||||||
|
authenticatorSecretName: "ums-opendesk-portal-server-central-navigation"
|
||||||
|
ingress:
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
nubusUdmRestApi:
|
||||||
|
ingress:
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
nubusProvisioning:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
nubusUdmListener:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
nubusSelfServiceListener:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
nubusSelfServiceConsumer:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# Nubus services
|
||||||
|
nubusStackDataUms:
|
||||||
|
stackDataContext:
|
||||||
|
umcPostgresqlHostname: {{ .Values.databases.umsSelfservice.host | quote }}
|
||||||
|
umcPostgresqlUsername: {{ .Values.databases.umsSelfservice.username | quote }}
|
||||||
|
umcMemcachedHostname: {{ .Values.cache.umsSelfservice.host | quote }}
|
||||||
|
umcMemcachedUsername: ""
|
||||||
|
externalMailDomain: {{ .Values.global.mailDomain | default .Values.global.domain }}
|
||||||
|
umcHtmlTitle: "openDesk Portal"
|
||||||
|
smtpHost: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
|
||||||
|
smtpPort: 25
|
||||||
|
smtpUser: ""
|
||||||
|
smtpStartTls: false
|
||||||
|
ldapBase: {{ .Values.ldap.baseDn }}
|
||||||
|
templateContext:
|
||||||
|
portalRealtimeCollaborationLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.element .Values.global.domain }}
|
||||||
|
portalRealtimeVideoconferenceLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.jitsi .Values.global.domain }}
|
||||||
|
portalManagementProjectLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.openproject .Values.global.domain }}
|
||||||
|
portalManagementKnowledgeLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.xwiki .Values.global.domain }}
|
||||||
|
portalGroupwareLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.openxchange .Values.global.domain }}
|
||||||
|
portalFileshareLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.nextcloud .Values.global.domain }}
|
||||||
|
portalTitleDE: "openDesk Portal"
|
||||||
|
portalTitleEN: "openDesk Portal"
|
||||||
|
oxDefaultContext: "1"
|
||||||
|
ldapSearchUsers:
|
||||||
|
{{- range $username, $password := .Values.secrets.nubus.ldapSearch }}
|
||||||
|
- username: {{ printf "ldapsearch_%s" $username | quote }}
|
||||||
|
password: {{ $password | quote }}
|
||||||
|
lastname: "LDAP-Search-User"
|
||||||
|
{{- end }}
|
||||||
|
ldapSystemUsers: []
|
||||||
|
portaltileGroupUserStandard:
|
||||||
|
- 'cn=Domain Users,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
- 'cn=Domain Users,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
portaltileGroupUserAdmin:
|
||||||
|
- 'cn=Domain Admins,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
- 'cn=Support,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
portaltileGroupUserAll:
|
||||||
|
- 'cn=Domain Admins,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
- 'cn=Domain Users,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
portaltileGroupGroupware:
|
||||||
|
- 'cn=managed-by-attribute-Groupware,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
portaltileGroupFileshare:
|
||||||
|
- 'cn=managed-by-attribute-Fileshare,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
portaltileGroupManagementProject:
|
||||||
|
- 'cn=managed-by-attribute-Projectmanagement,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
portaltileGroupManagementKnowledge:
|
||||||
|
- 'cn=managed-by-attribute-Knowledgemanagement,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
portaltileGroupManagementLearn:
|
||||||
|
- 'cn=managed-by-attribute-Learnmanagement,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
portaltileGroupLiveCollaboration:
|
||||||
|
- 'cn=managed-by-attribute-Livecollaboration,cn=groups,{{ .Values.ldap.baseDn }}'
|
||||||
|
systemInformation:
|
||||||
|
enabled: {{ .Values.functional.admin.portal.deploymentInformation.enabled }}
|
||||||
|
releaseVersion: "Release: {{ .Values.global.systemInformation.releaseVersion }}"
|
||||||
|
deployDate: "Deployed: {{ now | date "2006-01-02T15:04:05-0700" }}"
|
||||||
|
|
||||||
|
nubusUmcServer:
|
||||||
|
memcached:
|
||||||
|
auth:
|
||||||
|
username: ""
|
||||||
|
|
||||||
|
nubusUmcServer:
|
||||||
|
postgresql:
|
||||||
|
bundled: false
|
||||||
|
connection:
|
||||||
|
host: {{ .Values.databases.umsSelfservice.host | quote }}
|
||||||
|
port: {{ .Values.databases.umsSelfservice.port | quote }}
|
||||||
|
auth:
|
||||||
|
username: {{ .Values.databases.umsSelfservice.username | quote }}
|
||||||
|
database: {{ .Values.databases.umsSelfservice.name | quote }}
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-umc-server-postgresql-opendesk-credentials"
|
||||||
|
key: "umcServerDatabasePassword"
|
||||||
|
memcached:
|
||||||
|
bundled: false
|
||||||
|
server: {{ .Values.cache.umsSelfservice.host | quote }}
|
||||||
|
auth:
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-umc-server-memcached-opendesk-credentials"
|
||||||
|
key: "umcServerMemcachedPassword"
|
||||||
|
smtp:
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-umc-server-smtp-credentials-custom"
|
||||||
|
ingress:
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
nubusUmcGateway:
|
||||||
|
umcGateway:
|
||||||
|
umcHtmlTitle: "openDesk Portal"
|
||||||
|
ingress:
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
tls:
|
||||||
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|
||||||
|
nubusKeycloakBootstrap:
|
||||||
|
keycloak:
|
||||||
|
auth:
|
||||||
|
username: "kcadmin"
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-opendesk-keycloak-credentials"
|
||||||
|
key: "admin_password"
|
||||||
|
bootstrap:
|
||||||
|
ldapMappers:
|
||||||
|
- ldapAndUserModelAttributeName: "opendeskProjectmanagementAdmin"
|
||||||
|
- ldapAndUserModelAttributeName: "oxContextIDNum"
|
||||||
|
twoFactorAuthentication:
|
||||||
|
enabled: true
|
||||||
|
group: "2fa-users"
|
||||||
|
ldap:
|
||||||
|
auth:
|
||||||
|
bindDn: {{ printf "uid=ldapsearch_keycloak,cn=users,%s" .Values.ldap.baseDn }}
|
||||||
|
credentialSecret:
|
||||||
|
name: "ums-keycloak-bootstrap-ldap-opendesk-credentials"
|
||||||
|
|
||||||
|
# Credential secrets for accessing customer supplied services
|
||||||
|
extraSecrets:
|
||||||
|
- name: "ums-opendesk-portal-server-central-navigation"
|
||||||
|
stringData:
|
||||||
|
authenticator.secret: {{ .Values.secrets.centralnavigation.apiKey | quote }}
|
||||||
|
- name: "ums-opendesk-guardian-client-secret"
|
||||||
|
stringData:
|
||||||
|
managementApiClientSecret: {{ .Values.secrets.keycloak.clientSecret.guardian | quote }}
|
||||||
|
- name: "ums-opendesk-keycloak-credentials"
|
||||||
|
stringData:
|
||||||
|
admin_password: {{ .Values.secrets.keycloak.adminPassword | quote }}
|
||||||
|
- name: "ums-keycloak-postgresql-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
keycloakDatabasePassword: {{ .Values.databases.keycloak.password | default .Values.secrets.postgresql.keycloakUser | quote }}
|
||||||
|
- name: "ums-guardian-postgresql-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
guardianDatabasePassword: {{ .Values.databases.umsGuardianManagementApi.password | default .Values.secrets.postgresql.umsGuardianManagementApiUser | quote }}
|
||||||
|
- name: "ums-notifications-api-postgresql-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
password: {{ .Values.databases.umsNotificationsApi.password | default .Values.secrets.postgresql.umsNotificationsApiUser | quote }}
|
||||||
|
- name: "ums-umc-server-postgresql-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
umcServerDatabasePassword: {{ .Values.databases.umsSelfservice.password | default .Values.secrets.postgresql.umsSelfserviceUser | quote }}
|
||||||
|
- name: "ums-umc-server-memcached-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
umcServerMemcachedPassword: ""
|
||||||
|
- name: "ums-keycloak-extensions-postgresql-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
umcKeycloakExtensionsDatabasePassword: {{ .Values.databases.keycloakExtension.password | default .Values.secrets.postgresql.keycloakExtensionUser | quote }}
|
||||||
|
- name: "ums-keycloak-extensions-smtp-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
umcKeycloakExtensionsSmtpPassword: ""
|
||||||
|
- name: "ums-keycloak-bootstrap-ldap-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
password: {{ .Values.secrets.nubus.ldapSearch.keycloak | quote }}
|
||||||
|
- name: "ums-portal-server-minio-opendesk-credentials"
|
||||||
|
stringData:
|
||||||
|
access-key-id: {{ .Values.objectstores.nubus.username | quote }}
|
||||||
|
secret-key-id: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
|
||||||
|
- name: "ums-umc-server-smtp-credentials-custom"
|
||||||
|
stringData:
|
||||||
|
password: ""
|
||||||
238
helmfile/apps/nubus/values-opendesk-customization.yaml.gotmpl
Normal file
238
helmfile/apps/nubus/values-opendesk-customization.yaml.gotmpl
Normal file
@@ -0,0 +1,238 @@
|
|||||||
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
|
---
|
||||||
|
keycloak:
|
||||||
|
enabled: true
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-keycloak"
|
||||||
|
replicaCount: {{ .Values.replicas.keycloak }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsKeycloak | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
guardian:
|
||||||
|
authorizationApi:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-guardian-authorization-api"
|
||||||
|
replicaCount: {{ .Values.replicas.umsGuardianAuthorizationApi }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsGuardianAuthorizationApi | toYaml | nindent 6 }}
|
||||||
|
managementApi:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-guardian-management-api"
|
||||||
|
replicaCount: {{ .Values.replicas.umsGuardianManagementApi }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsGuardianManagementApi | toYaml | nindent 6 }}
|
||||||
|
managementUi:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-guardian-management-ui"
|
||||||
|
replicaCount: {{ .Values.replicas.umsGuardianManagementUi }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsGuardianManagementUi | toYaml | nindent 6 }}#
|
||||||
|
openPolicyAgent:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-ums-open-policy-agent"
|
||||||
|
replicaCount: {{ .Values.replicas.umsGuardianOpenPolicyAgent }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsOpenPolicyAgent | toYaml | nindent 6 }}
|
||||||
|
provisioning:
|
||||||
|
# Using openDesk keycloak provisioning
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
nubusNotificationsApi:
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-notifications-api"
|
||||||
|
serviceAccount:
|
||||||
|
annotations:
|
||||||
|
intended.usage: "compliance"
|
||||||
|
replicaCount: {{ .Values.replicas.umsNotificationsApi }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsNotificationsApi | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
nubusUmcServer:
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-umc-server"
|
||||||
|
replicaCount: {{ .Values.replicas.umsUmcServer }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsUmcServer | toYaml | nindent 4 }}
|
||||||
|
selfService:
|
||||||
|
passwordresetEmailBody: |
|
||||||
|
Sehr geehrte Benutzerin, sehr geehrter Benutzer,
|
||||||
|
|
||||||
|
Ihr Benutzername für {domainname} lautet: {username}
|
||||||
|
|
||||||
|
Sie erhalten diese Nachricht, da Sie Ihr Passwort zurücksetzen möchten oder weil Ihr Benutzer neu im System angelegt wurde.
|
||||||
|
|
||||||
|
Klicken Sie bitte auf den folgenden Link, um Ihr Passwort zu setzen:
|
||||||
|
https://{fqdn}/univention/portal/#/selfservice/newpassword/?token={token}&username={username}
|
||||||
|
|
||||||
|
Der genannte Link ist nur 48 Stunden gültig, danach fordern Sie ihn bitte erneut an unter:
|
||||||
|
https://{fqdn}/univention/portal/#/selfservice/passwordforgotten
|
||||||
|
|
||||||
|
Mit freundlichen Grüßen
|
||||||
|
Ihr {domainname} Passwort-Service
|
||||||
|
|
||||||
|
nubusKeycloakExtensions:
|
||||||
|
handler:
|
||||||
|
replicaCount: {{ .Values.replicas.umsKeycloakExtensionsHandler }}
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-keycloak-extensions-handler"
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 6 }}
|
||||||
|
proxy:
|
||||||
|
replicaCount: {{ .Values.replicas.umsKeycloakExtensionsProxy }}
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-keycloak-extensions-proxy"
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 6 }}
|
||||||
|
|
||||||
|
nubusPortalConsumer:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-portal-consumer"
|
||||||
|
replicaCount: {{ .Values.replicas.umsPortalConsumer }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsPortalConsumer | toYaml | nindent 4 }}
|
||||||
|
resourcesWaitForDependency:
|
||||||
|
{{ .Values.resources.umsPortalConsumerDependencies | toYaml | nindent 4 }}
|
||||||
|
persistence:
|
||||||
|
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
||||||
|
size: {{ .Values.persistence.size.nubus.portalConsumer | quote }}
|
||||||
|
|
||||||
|
nubusPortalConsumer:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-portal-consumer"
|
||||||
|
replicaCount: {{ .Values.replicas.umsPortalConsumer }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsPortalConsumer | toYaml | nindent 4 }}
|
||||||
|
resourcesWaitForDependency:
|
||||||
|
{{ .Values.resources.umsPortalConsumerDependencies | toYaml | nindent 4 }}
|
||||||
|
persistence:
|
||||||
|
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
||||||
|
size: {{ .Values.persistence.size.nubus.portalConsumer | quote }}
|
||||||
|
|
||||||
|
nubusPortalServer:
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-portal-server"
|
||||||
|
serviceAccount:
|
||||||
|
annotations:
|
||||||
|
intended.usage: "compliance"
|
||||||
|
replicaCount: {{ .Values.replicas.umsPortalServer }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsPortalServer | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
nubusLdapNotifier:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-ldap-notifier"
|
||||||
|
replicaCount: {{ .Values.replicas.umsLdapNotifier }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsLdapNotifier | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
nubusLdapServer:
|
||||||
|
highAvailabilityMode: false
|
||||||
|
replicaCountPrimary: 1
|
||||||
|
replicaCountSecondary: 0 # {{ .Values.replicas.umsLdapServerSecondary }}
|
||||||
|
replicaCountProxy: 0 # {{ .Values.replicas.umsLdapServerProxy }}
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-ldap-server"
|
||||||
|
serviceAccount:
|
||||||
|
annotations:
|
||||||
|
intended.usage: "compliance"
|
||||||
|
initResources: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }}
|
||||||
|
resources: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }}
|
||||||
|
persistence:
|
||||||
|
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
||||||
|
size: {{ .Values.persistence.size.nubus.ldapServerData | quote }}
|
||||||
|
|
||||||
|
nubusPortalFrontend:
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-portal-frontend"
|
||||||
|
serviceAccount:
|
||||||
|
annotations:
|
||||||
|
intended.usage: "compliance"
|
||||||
|
replicaCount: {{ .Values.replicas.umsPortalFrontend }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsPortalFrontend | toYaml | nindent 4 }}
|
||||||
|
portalFrontend:
|
||||||
|
branding:
|
||||||
|
css: {{ .Values.theme.imagery.portalCss | toJson }}
|
||||||
|
favicon: {{ .Values.theme.imagery.faviconIcoB64 | toJson }}
|
||||||
|
logo: {{ .Values.theme.imagery.logoHeaderSvgB64 | toJson }}
|
||||||
|
backgroundImage: {{ .Values.theme.imagery.logoPortalBackgroundSvgB64 | toJson }}
|
||||||
|
|
||||||
|
nubusStackDataUms:
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-stack-data-ums"
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsStackDataUms | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
nubusSelfServiceConsumer:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-selfservice-listener"
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsSelfserviceConsumer | toYaml | nindent 4 }}
|
||||||
|
replicaCount: {{ .Values.replicas.umsSelfserviceConsumer }}
|
||||||
|
|
||||||
|
nubusUdmRestApi:
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-udm-rest-api"
|
||||||
|
serviceAccount:
|
||||||
|
annotations:
|
||||||
|
intended.usage: "compliance"
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsUdmRestApi | toYaml | nindent 4 }}
|
||||||
|
initResources:
|
||||||
|
{{ .Values.resources.umsUdmRestApiInit | toYaml | nindent 4 }}
|
||||||
|
replicaCount: {{ .Values.replicas.umsUdmRestApi }}
|
||||||
|
|
||||||
|
nubusUmcGateway:
|
||||||
|
replicaCount: {{ .Values.replicas.umsUmcGateway }}
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsUmcGateway | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
nubusKeycloakBootstrap:
|
||||||
|
podAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-keycloak-bootstrap"
|
||||||
|
serviceAccount:
|
||||||
|
annotations:
|
||||||
|
intended.usage: "compliance"
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.umsKeycloakBootstrap | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
nubusProvisioning:
|
||||||
|
serviceAccount:
|
||||||
|
annotations:
|
||||||
|
intended.usage: "compliance"
|
||||||
|
nats:
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.nubusProvisioning.nats | toYaml | nindent 6 }}
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-provisioning-nats"
|
||||||
|
serviceAccount:
|
||||||
|
annotations:
|
||||||
|
intended.usage: "compliance"
|
||||||
|
api:
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.nubusProvisioning.api | toYaml | nindent 6 }}
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-provisioning-api"
|
||||||
|
dispatcher:
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.nubusProvisioning.dispatcher | toYaml | nindent 6 }}
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-provisioning-dispatcher"
|
||||||
|
prefill:
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.nubusProvisioning.prefill | toYaml | nindent 6 }}
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-provisioning-prefill"
|
||||||
|
registerConsumers:
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.nubusProvisioning.registerConsumers | toYaml | nindent 6 }}
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-provisioning-register-consumers"
|
||||||
|
udmTransformer:
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.nubusProvisioning.udmTransformer | toYaml | nindent 6 }}
|
||||||
|
additionalAnnotations:
|
||||||
|
intents.otterize.com/service-name: "ums-provisioning-udm-transformer"
|
||||||
214
helmfile/apps/nubus/values-opendesk-images.yaml.gotmpl
Normal file
214
helmfile/apps/nubus/values-opendesk-images.yaml.gotmpl
Normal file
@@ -0,0 +1,214 @@
|
|||||||
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
|
---
|
||||||
|
keycloak:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloak.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusKeycloak.repository }}
|
||||||
|
tag: {{ .Values.images.nubusKeycloak.tag }}
|
||||||
|
|
||||||
|
nubusKeycloakBootstrap:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakBootstrap.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusKeycloakBootstrap.repository }}
|
||||||
|
tag: {{ .Values.images.nubusKeycloakBootstrap.tag }}
|
||||||
|
|
||||||
|
nubusKeycloakExtensions:
|
||||||
|
handler:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakExtensionHandler.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusKeycloakExtensionHandler.repository }}
|
||||||
|
tag: {{ .Values.images.nubusKeycloakExtensionHandler.tag }}
|
||||||
|
|
||||||
|
proxy:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakExtensionProxy.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusKeycloakExtensionProxy.repository }}
|
||||||
|
tag: {{ .Values.images.nubusKeycloakExtensionProxy.tag }}
|
||||||
|
|
||||||
|
nubusLdapNotifier:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusLdapNotifier.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusLdapNotifier.repository }}
|
||||||
|
tag: {{ .Values.images.nubusLdapNotifier.tag }}
|
||||||
|
|
||||||
|
nubusLdapServer:
|
||||||
|
ldapServer:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusLdapServer.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusLdapServer.repository }}
|
||||||
|
tag: {{ .Values.images.nubusLdapServer.tag }}
|
||||||
|
dhInitcontainer:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusLdapServerDhInitContainer.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusLdapServerDhInitContainer.repository }}
|
||||||
|
tag: {{ .Values.images.nubusLdapServerDhInitContainer.tag }}
|
||||||
|
waitForDependency:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusWaitForDependency.repository }}
|
||||||
|
tag: {{ .Values.images.nubusWaitForDependency.tag }}
|
||||||
|
|
||||||
|
nubusNotificationsApi:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusNotificationsApi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusNotificationsApi.repository }}
|
||||||
|
tag: {{ .Values.images.nubusNotificationsApi.tag }}
|
||||||
|
|
||||||
|
nubusPortalFrontend:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusPortalFrontend.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusPortalFrontend.repository }}
|
||||||
|
tag: {{ .Values.images.nubusPortalFrontend.tag }}
|
||||||
|
|
||||||
|
nubusPortalConsumer:
|
||||||
|
portalConsumer:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusPortalConsumer.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusPortalConsumer.repository }}
|
||||||
|
tag: {{ .Values.images.nubusPortalConsumer.tag }}
|
||||||
|
waitForDependency:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusWaitForDependency.repository }}
|
||||||
|
tag: {{ .Values.images.nubusWaitForDependency.tag }}
|
||||||
|
|
||||||
|
nubusPortalServer:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusPortalServer.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusPortalServer.repository }}
|
||||||
|
tag: {{ .Values.images.nubusPortalServer.tag }}
|
||||||
|
|
||||||
|
nubusProvisioning:
|
||||||
|
api:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningEventsAndConsumerApi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.repository }}
|
||||||
|
tag: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.tag }}
|
||||||
|
dispatcher:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningDispatcher.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusProvisioningDispatcher.repository }}
|
||||||
|
tag: {{ .Values.images.nubusProvisioningDispatcher.tag }}
|
||||||
|
udmTransformer:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningUdmTransformer.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusProvisioningUdmTransformer.repository }}
|
||||||
|
tag: {{ .Values.images.nubusProvisioningUdmTransformer.tag }}
|
||||||
|
prefill:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningPrefill.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusProvisioningPrefill.repository }}
|
||||||
|
tag: {{ .Values.images.nubusProvisioningPrefill.tag }}
|
||||||
|
registerConsumers:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusWaitForDependency.repository }}
|
||||||
|
tag: {{ .Values.images.nubusWaitForDependency.tag }}
|
||||||
|
nats:
|
||||||
|
nats:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNats.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusNats.repository }}
|
||||||
|
tag: {{ .Values.images.nubusNats.tag }}
|
||||||
|
reloader:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNatsReloader.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusNatsReloader.repository }}
|
||||||
|
tag: {{ .Values.images.nubusNatsReloader.tag }}
|
||||||
|
natsBox:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNatsBox.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusNatsBox.repository }}
|
||||||
|
tag: {{ .Values.images.nubusNatsBox.tag }}
|
||||||
|
|
||||||
|
nubusProvisioningEventsAndConsumerApi:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningEventsAndConsumerApi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.repository }}
|
||||||
|
tag: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.tag }}
|
||||||
|
|
||||||
|
nubusProvisioningPrefill:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningPrefill.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusProvisioningPrefill.repository }}
|
||||||
|
tag: {{ .Values.images.nubusProvisioningPrefill.tag }}
|
||||||
|
|
||||||
|
nubusUdmListener:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningUdmListener.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusProvisioningUdmListener.repository }}
|
||||||
|
tag: {{ .Values.images.nubusProvisioningUdmListener.tag }}
|
||||||
|
|
||||||
|
nubusSelfServiceListener:
|
||||||
|
selfserviceInvitation:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusSelfserviceInvitation.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusSelfserviceInvitation.repository }}
|
||||||
|
tag: {{ .Values.images.nubusSelfserviceInvitation.tag }}
|
||||||
|
waitForDependency:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusWaitForDependency.repository }}
|
||||||
|
tag: {{ .Values.images.nubusWaitForDependency.tag }}
|
||||||
|
|
||||||
|
nubusUdmRestApi:
|
||||||
|
udmRestApi:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusUdmRestApi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusUdmRestApi.repository }}
|
||||||
|
tag: {{ .Values.images.nubusUdmRestApi.tag }}
|
||||||
|
|
||||||
|
nubusUmcGateway:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusUmcGateway.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusUmcGateway.repository }}
|
||||||
|
tag: {{ .Values.images.nubusUmcGateway.tag }}
|
||||||
|
|
||||||
|
nubusUmcServer:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusUmcServer.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusUmcServer.repository }}
|
||||||
|
tag: {{ .Values.images.nubusUmcServer.tag }}
|
||||||
|
|
||||||
|
nubusWaitForDependency:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusWaitForDependency.repository }}
|
||||||
|
tag: {{ .Values.images.nubusWaitForDependency.tag }}
|
||||||
|
|
||||||
|
|
||||||
|
nubusGuardian:
|
||||||
|
provisioning:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianProvisioning.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusGuardianProvisioning.repository }}
|
||||||
|
tag: {{ .Values.images.nubusGuardianProvisioning.tag }}
|
||||||
|
authorizationApi:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianAuthorizationApi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusGuardianAuthorizationApi.repository }}
|
||||||
|
tag: {{ .Values.images.nubusGuardianAuthorizationApi.tag }}
|
||||||
|
managementApi:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianManagementApi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusGuardianManagementApi.repository }}
|
||||||
|
tag: {{ .Values.images.nubusGuardianManagementApi.tag }}
|
||||||
|
managementUi:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianManagementUi.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusGuardianManagementUi.repository }}
|
||||||
|
tag: {{ .Values.images.nubusGuardianManagementUi.tag }}
|
||||||
|
openPolicyAgent:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusOpenPolicyAgent.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusOpenPolicyAgent.repository }}
|
||||||
|
tag: {{ .Values.images.nubusOpenPolicyAgent.tag }}
|
||||||
|
|
||||||
|
nubusStackDataUms:
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusDataLoader.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusDataLoader.repository }}
|
||||||
|
tag: {{ .Values.images.nubusDataLoader.tag }}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{{/*
|
{{/*
|
||||||
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
|
||||||
*/}}
|
*/}}
|
||||||
---
|
---
|
||||||
@@ -11,16 +11,25 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.opendeskKeycloakBootstrap.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.opendeskKeycloakBootstrap.registry | quote }}
|
||||||
repository: {{ .Values.images.opendeskKeycloakBootstrap.repository | quote }}
|
repository: {{ .Values.images.opendeskKeycloakBootstrap.repository | quote }}
|
||||||
tag: {{ .Values.images.opendeskKeycloakBootstrap.tag | quote }}
|
tag: {{ .Values.images.opendeskKeycloakBootstrap.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
keepPVCOnDelete: {{ .Values.cleanup.keepPVCOnDelete }}
|
keepPVCOnDelete: {{ .Values.debug.cleanup.keepPVCOnDelete }}
|
||||||
|
|
||||||
config:
|
config:
|
||||||
|
custom:
|
||||||
|
clientScopes:
|
||||||
|
{{ .Values.functional.authentication.oidc.clientScopes | toYaml | nindent 6 }}
|
||||||
|
clients:
|
||||||
|
{{ .Values.functional.authentication.oidc.clients | toYaml | nindent 6 }}
|
||||||
|
managed:
|
||||||
|
clientScopes: [ 'acr', 'web-origins', 'email', 'profile', 'microprofile-jwt', 'role_list', 'offline_access', 'roles', 'address', 'phone' ]
|
||||||
|
# 'guardian-management-api', 'guardian-scripts', 'guardian-ui' clients have been added explicitly for the moment (see further down this file)
|
||||||
|
clients: [ 'opendesk-intercom', 'guardian-management-api', 'guardian-scripts', 'guardian-ui', 'UMC', '${client_account}', '${client_account-console}', '${client_admin-cli}', '${client_broker}', '${client_realm-management}', '${client_security-admin-console}' ]
|
||||||
keycloak:
|
keycloak:
|
||||||
adminUser: "kcadmin"
|
adminUser: "kcadmin"
|
||||||
adminPassword: {{ .Values.secrets.keycloak.adminPassword | quote }}
|
adminPassword: {{ .Values.secrets.keycloak.adminPassword | quote }}
|
||||||
@@ -29,14 +38,19 @@ config:
|
|||||||
enabled: true
|
enabled: true
|
||||||
internalBaseUrl: "http://ums-keycloak.{{ .Release.Namespace }}.svc.{{ .Values.cluster.networking.domain }}:8080"
|
internalBaseUrl: "http://ums-keycloak.{{ .Release.Namespace }}.svc.{{ .Values.cluster.networking.domain }}:8080"
|
||||||
twoFactorSettings:
|
twoFactorSettings:
|
||||||
additionalGroups: {{ .Values.authentication.twoFactor.groups }}
|
additionalGroups: {{ .Values.functional.authentication.twoFactor.groups }}
|
||||||
custom:
|
opendesk:
|
||||||
|
# We use client specific scopes as we bind them to Keycloak role membership which itself is linked
|
||||||
|
# to LDAP group membership to ensure a user cannot access an application without the required
|
||||||
|
# group membership.
|
||||||
|
# ToDo: Ensure all applications verify the token's signature to ensure it is not tampered.
|
||||||
clientScopes:
|
clientScopes:
|
||||||
- name: "read_contacts"
|
- name: "read_contacts"
|
||||||
protocol: "openid-connect"
|
protocol: "openid-connect"
|
||||||
- name: "write_contacts"
|
- name: "write_contacts"
|
||||||
protocol: "openid-connect"
|
protocol: "openid-connect"
|
||||||
- name: "opendesk"
|
- name: "opendesk-openproject-scope"
|
||||||
|
description: "Scope for the claims required by openDesk's OpenProject instance."
|
||||||
protocol: "openid-connect"
|
protocol: "openid-connect"
|
||||||
protocolMappers:
|
protocolMappers:
|
||||||
- name: "opendesk_useruuid"
|
- name: "opendesk_useruuid"
|
||||||
@@ -61,6 +75,306 @@ config:
|
|||||||
access.token.claim: true
|
access.token.claim: true
|
||||||
claim.name: "opendesk_username"
|
claim.name: "opendesk_username"
|
||||||
jsonType.label: "String"
|
jsonType.label: "String"
|
||||||
|
- name: "opendeskProjectmanagementAdmin"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "opendeskProjectmanagementAdmin"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "openproject_admin"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "email"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
introspection.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "email"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "email"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "given name"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
introspection.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "firstName"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "given_name"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "family name"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
introspection.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "lastName"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "family_name"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk-jitsi-scope"
|
||||||
|
description: "Scope for the claims required by openDesk's Jitsi instance."
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMappers:
|
||||||
|
- name: "opendesk_useruuid"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "entryUUID"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_useruuid"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk_username"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "uid"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_username"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "full name"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-full-name-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
id.token.claim: true
|
||||||
|
introspection.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
- name: "email"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
introspection.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "email"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "email"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk-nextcloud-scope"
|
||||||
|
description: "Scope for the claims required by openDesk's Nextcloud instance."
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMappers:
|
||||||
|
- name: "opendesk_useruuid"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "entryUUID"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_useruuid"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk_username"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "uid"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_username"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "email"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
introspection.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "email"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "email"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "context"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "oxContextIDNum"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "context"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk-matrix-scope"
|
||||||
|
description: "Scope for the claims required by openDesk's Matrix instance."
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMappers:
|
||||||
|
- name: "opendesk_useruuid"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "entryUUID"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_useruuid"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk_username"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "uid"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_username"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "full name"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-full-name-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
id.token.claim: true
|
||||||
|
introspection.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
- name: "email"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
introspection.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "email"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "email"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk-xwiki-scope"
|
||||||
|
description: "Scope for the claims required by openDesk's XWiki instance."
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMappers:
|
||||||
|
- name: "opendesk_useruuid"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "entryUUID"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_useruuid"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk_username"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "uid"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_username"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "full name"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-full-name-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
id.token.claim: true
|
||||||
|
introspection.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
- name: "email"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
introspection.token.claim: true
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "email"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "email"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk-dovecot-scope"
|
||||||
|
description: "Scope for the claims required by openDesk's Dovecot instance."
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMappers:
|
||||||
|
- name: "opendesk_useruuid"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "entryUUID"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_useruuid"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk_username"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "uid"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_username"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk-oxappsuite-scope"
|
||||||
|
description: "Scope for the claims required by openDesk's OX Appuite instance."
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMappers:
|
||||||
|
- name: "context"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "oxContextIDNum"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "context"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk_useruuid"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "entryUUID"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_useruuid"
|
||||||
|
jsonType.label: "String"
|
||||||
|
- name: "opendesk_username"
|
||||||
|
protocol: "openid-connect"
|
||||||
|
protocolMapper: "oidc-usermodel-attribute-mapper"
|
||||||
|
consentRequired: false
|
||||||
|
config:
|
||||||
|
userinfo.token.claim: true
|
||||||
|
user.attribute: "uid"
|
||||||
|
id.token.claim: true
|
||||||
|
access.token.claim: true
|
||||||
|
claim.name: "opendesk_username"
|
||||||
|
jsonType.label: "String"
|
||||||
clients:
|
clients:
|
||||||
- name: "opendesk-dovecot"
|
- name: "opendesk-dovecot"
|
||||||
clientId: "opendesk-dovecot"
|
clientId: "opendesk-dovecot"
|
||||||
@@ -74,62 +388,7 @@ config:
|
|||||||
attributes:
|
attributes:
|
||||||
backchannel.logout.session.required: false
|
backchannel.logout.session.required: false
|
||||||
defaultClientScopes:
|
defaultClientScopes:
|
||||||
- "opendesk"
|
- "opendesk-dovecot-scope"
|
||||||
- name: "opendesk-intercom"
|
|
||||||
clientId: "opendesk-intercom"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
clientAuthenticatorType: "client-secret"
|
|
||||||
secret: {{ .Values.secrets.keycloak.clientSecret.intercom | quote }}
|
|
||||||
redirectUris:
|
|
||||||
- "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/callback"
|
|
||||||
consentRequired: false
|
|
||||||
frontchannelLogout: false
|
|
||||||
publicClient: false
|
|
||||||
authorizationServicesEnabled: false
|
|
||||||
attributes:
|
|
||||||
backchannel.logout.session.required: true
|
|
||||||
backchannel.logout.revoke.offline.tokens: true
|
|
||||||
backchannel.logout.url: "https://{{ .Values.global.hosts.intercomService }}.{{ .Values.global.domain }}/backchannel-logout"
|
|
||||||
protocolMappers:
|
|
||||||
- name: "intercom-audience"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-audience-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
included.client.audience: "opendesk-intercom"
|
|
||||||
id.token.claim: false
|
|
||||||
access.token.claim: true
|
|
||||||
# temporary additional claim while entryuuid is a hardcoded attribute in IntercomService and we cannot set
|
|
||||||
# it to `opendesk_useruuid` standard claim. For reference:
|
|
||||||
# https://github.com/univention/intercom-service/blob/cd819b6ced6433e532e74a8878943d05412c1416/intercom/app.js#L89
|
|
||||||
- name: "entryuuid_temp"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "entryUUID"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "entryuuid"
|
|
||||||
jsonType.label: "String"
|
|
||||||
# temporary additional claim while phoenixusername is a hardcoded attribute in IntercomService and we cannot
|
|
||||||
# set it to `opendesk_username` standard claim. For reference:
|
|
||||||
# https://github.com/univention/intercom-service/blob/cd819b6ced6433e532e74a8878943d05412c1416/intercom/routes/navigation.js#L27
|
|
||||||
- name: "phoenixusername_temp"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "uid"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "phoenixusername"
|
|
||||||
jsonType.label: "String"
|
|
||||||
defaultClientScopes:
|
|
||||||
- "opendesk"
|
|
||||||
- "offline_access"
|
|
||||||
- name: "opendesk-jitsi"
|
- name: "opendesk-jitsi"
|
||||||
clientId: "opendesk-jitsi"
|
clientId: "opendesk-jitsi"
|
||||||
protocol: "openid-connect"
|
protocol: "openid-connect"
|
||||||
@@ -142,8 +401,7 @@ config:
|
|||||||
fullScopeAllowed: true
|
fullScopeAllowed: true
|
||||||
authorizationServicesEnabled: false
|
authorizationServicesEnabled: false
|
||||||
defaultClientScopes:
|
defaultClientScopes:
|
||||||
- "opendesk"
|
- "opendesk-jitsi-scope"
|
||||||
- "profile"
|
|
||||||
- name: "opendesk-matrix"
|
- name: "opendesk-matrix"
|
||||||
clientId: "opendesk-matrix"
|
clientId: "opendesk-matrix"
|
||||||
protocol: "openid-connect"
|
protocol: "openid-connect"
|
||||||
@@ -152,7 +410,7 @@ config:
|
|||||||
redirectUris:
|
redirectUris:
|
||||||
- "https://{{ .Values.global.hosts.element }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.element }}.{{ .Values.global.domain }}/*"
|
||||||
- "https://{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}/*"
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
standardFlowEnabled: true
|
standardFlowEnabled: true
|
||||||
directAccessGrantsEnabled: true
|
directAccessGrantsEnabled: true
|
||||||
serviceAccountsEnabled: true
|
serviceAccountsEnabled: true
|
||||||
@@ -163,14 +421,11 @@ config:
|
|||||||
attributes:
|
attributes:
|
||||||
backchannel.logout.session.required: true
|
backchannel.logout.session.required: true
|
||||||
backchannel.logout.url: "https://{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}/_synapse/client/oidc/backchannel_logout"
|
backchannel.logout.url: "https://{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}/_synapse/client/oidc/backchannel_logout"
|
||||||
post.logout.redirect.uris: "https://{{ .Values.global.hosts.element }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
post.logout.redirect.uris: "https://{{ .Values.global.hosts.element }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
defaultClientScopes:
|
defaultClientScopes:
|
||||||
- "opendesk"
|
- "opendesk-matrix-scope"
|
||||||
optionalClientScopes:
|
# The following is a temporary OIDC client for matrix, as the OIDC logout still uses "matrix" as client ID.
|
||||||
- "email"
|
# Unless that is solved and also is able to use "opendesk-matrix" we keep that dummy client that
|
||||||
- "profile"
|
|
||||||
# This is a temporary OIDC client for matrix, as the OIDC logout still uses "matrix" as client ID. Unless that
|
|
||||||
# is solved and also is able to use "opendesk-matrix" we keep that dummy client that
|
|
||||||
- name: "matrix"
|
- name: "matrix"
|
||||||
clientId: "matrix"
|
clientId: "matrix"
|
||||||
protocol: "openid-connect"
|
protocol: "openid-connect"
|
||||||
@@ -182,7 +437,9 @@ config:
|
|||||||
publicClient: false
|
publicClient: false
|
||||||
authorizationServicesEnabled: false
|
authorizationServicesEnabled: false
|
||||||
attributes:
|
attributes:
|
||||||
post.logout.redirect.uris: "https://{{ .Values.global.hosts.element }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
post.logout.redirect.uris: "https://{{ .Values.global.hosts.element }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.synapse }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
|
defaultClientScopes: []
|
||||||
|
optionalClientScopes: []
|
||||||
- name: "opendesk-nextcloud"
|
- name: "opendesk-nextcloud"
|
||||||
clientId: "opendesk-nextcloud"
|
clientId: "opendesk-nextcloud"
|
||||||
protocol: "openid-connect"
|
protocol: "openid-connect"
|
||||||
@@ -190,7 +447,7 @@ config:
|
|||||||
secret: {{ .Values.secrets.keycloak.clientSecret.ncoidc | quote }}
|
secret: {{ .Values.secrets.keycloak.clientSecret.ncoidc | quote }}
|
||||||
redirectUris:
|
redirectUris:
|
||||||
- "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/*"
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
consentRequired: false
|
consentRequired: false
|
||||||
frontchannelLogout: false
|
frontchannelLogout: false
|
||||||
publicClient: false
|
publicClient: false
|
||||||
@@ -198,22 +455,9 @@ config:
|
|||||||
attributes:
|
attributes:
|
||||||
backchannel.logout.session.required: true
|
backchannel.logout.session.required: true
|
||||||
backchannel.logout.url: "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/index.php/apps/user_oidc/backchannel-logout/opendesk"
|
backchannel.logout.url: "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/index.php/apps/user_oidc/backchannel-logout/opendesk"
|
||||||
post.logout.redirect.uris: "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
post.logout.redirect.uris: "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
protocolMappers:
|
|
||||||
- name: "context"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "oxContextIDNum"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "context"
|
|
||||||
jsonType.label: "String"
|
|
||||||
defaultClientScopes:
|
defaultClientScopes:
|
||||||
- "opendesk"
|
- "opendesk-nextcloud-scope"
|
||||||
- "email"
|
|
||||||
- "read_contacts"
|
- "read_contacts"
|
||||||
- "write_contacts"
|
- "write_contacts"
|
||||||
- name: "opendesk-openproject"
|
- name: "opendesk-openproject"
|
||||||
@@ -223,7 +467,7 @@ config:
|
|||||||
secret: {{ .Values.secrets.keycloak.clientSecret.openproject | quote }}
|
secret: {{ .Values.secrets.keycloak.clientSecret.openproject | quote }}
|
||||||
redirectUris:
|
redirectUris:
|
||||||
- "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/*"
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
consentRequired: false
|
consentRequired: false
|
||||||
frontchannelLogout: false
|
frontchannelLogout: false
|
||||||
publicClient: false
|
publicClient: false
|
||||||
@@ -232,23 +476,9 @@ config:
|
|||||||
attributes:
|
attributes:
|
||||||
backchannel.logout.session.required: true
|
backchannel.logout.session.required: true
|
||||||
backchannel.logout.url: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/auth/keycloak/backchannel-logout"
|
backchannel.logout.url: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/auth/keycloak/backchannel-logout"
|
||||||
post.logout.redirect.uris: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
post.logout.redirect.uris: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
protocolMappers:
|
|
||||||
- name: "opendeskProjectmanagementAdmin"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "opendeskProjectmanagementAdmin"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "openproject_admin"
|
|
||||||
jsonType.label: "String"
|
|
||||||
defaultClientScopes:
|
defaultClientScopes:
|
||||||
- "opendesk"
|
- "opendesk-openproject-scope"
|
||||||
- "email"
|
|
||||||
- "profile"
|
|
||||||
- name: "opendesk-oxappsuite"
|
- name: "opendesk-oxappsuite"
|
||||||
clientId: "opendesk-oxappsuite"
|
clientId: "opendesk-oxappsuite"
|
||||||
protocol: "openid-connect"
|
protocol: "openid-connect"
|
||||||
@@ -256,7 +486,7 @@ config:
|
|||||||
secret: {{ .Values.secrets.keycloak.clientSecret.as8oidc | quote }}
|
secret: {{ .Values.secrets.keycloak.clientSecret.as8oidc | quote }}
|
||||||
redirectUris:
|
redirectUris:
|
||||||
- "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/*"
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
consentRequired: false
|
consentRequired: false
|
||||||
frontchannelLogout: false
|
frontchannelLogout: false
|
||||||
publicClient: false
|
publicClient: false
|
||||||
@@ -264,21 +494,9 @@ config:
|
|||||||
attributes:
|
attributes:
|
||||||
backchannel.logout.session.required: true
|
backchannel.logout.session.required: true
|
||||||
backchannel.logout.url: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/ajax/oidc/backchannel_logout"
|
backchannel.logout.url: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/ajax/oidc/backchannel_logout"
|
||||||
post.logout.redirect.uris: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
post.logout.redirect.uris: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
protocolMappers:
|
|
||||||
- name: "context"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "oxContextIDNum"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "context"
|
|
||||||
jsonType.label: "String"
|
|
||||||
defaultClientScopes:
|
defaultClientScopes:
|
||||||
- "opendesk"
|
- "opendesk-oxappsuite-scope"
|
||||||
- "read_contacts"
|
- "read_contacts"
|
||||||
- "write_contacts"
|
- "write_contacts"
|
||||||
- name: "opendesk-xwiki"
|
- name: "opendesk-xwiki"
|
||||||
@@ -288,7 +506,7 @@ config:
|
|||||||
secret: {{ .Values.secrets.keycloak.clientSecret.xwiki | quote }}
|
secret: {{ .Values.secrets.keycloak.clientSecret.xwiki | quote }}
|
||||||
redirectUris:
|
redirectUris:
|
||||||
- "https://{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}/*"
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
- "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
consentRequired: false
|
consentRequired: false
|
||||||
frontchannelLogout: false
|
frontchannelLogout: false
|
||||||
publicClient: false
|
publicClient: false
|
||||||
@@ -296,304 +514,9 @@ config:
|
|||||||
attributes:
|
attributes:
|
||||||
backchannel.logout.session.required: false
|
backchannel.logout.session.required: false
|
||||||
backchannel.logout.url: "https://{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}/oidc/authenticator/backchannel_logout"
|
backchannel.logout.url: "https://{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}/oidc/authenticator/backchannel_logout"
|
||||||
post.logout.redirect.uris: "https://{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/*"
|
post.logout.redirect.uris: "https://{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
|
||||||
defaultClientScopes:
|
defaultClientScopes:
|
||||||
- "opendesk"
|
- "opendesk-xwiki-scope"
|
||||||
- "address"
|
|
||||||
- "email"
|
|
||||||
- "profile"
|
|
||||||
- name: "guardian-management-api"
|
|
||||||
clientId: "guardian-management-api"
|
|
||||||
rootUrl: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
baseUrl: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
publicClient: false
|
|
||||||
clientAuthenticatorType: "client-secret"
|
|
||||||
secret: {{ .Values.secrets.keycloak.clientSecret.guardian | quote }}
|
|
||||||
redirectUris:
|
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/guardian/*"
|
|
||||||
fullScopeAllowed: true
|
|
||||||
standardFlowEnabled: true
|
|
||||||
implicitFlowEnabled: false
|
|
||||||
directAccessGrantsEnabled: false
|
|
||||||
serviceAccountsEnabled: true
|
|
||||||
protocolMappers:
|
|
||||||
- name: "Client Host"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usersessionmodel-note-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
user.session.note: "clientHost"
|
|
||||||
userinfo.token.claim: true
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "clientHost"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "Client ID"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usersessionmodel-note-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
user.session.note: "client_id"
|
|
||||||
userinfo.token.claim: true
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "client_id"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "guardian-audience"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-audience-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
included.client.audience: "guardian"
|
|
||||||
userinfo.token.claim: false
|
|
||||||
id.token.claim: false
|
|
||||||
access.token.claim: true
|
|
||||||
- name: "audiencemap"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-audience-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
included.client.audience: "guardian-cli"
|
|
||||||
userinfo.token.claim: true
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
- name: "dn"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: false
|
|
||||||
user.attribute: "LDAP_ENTRY_DN"
|
|
||||||
id.token.claim: false
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "dn"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "username"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-property-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "username"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "preferred_username"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "uid"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "uid"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "uid"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "email"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-property-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "email"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "email"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "Client IP Address"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usersessionmodel-note-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
user.session.note: "clientAddress"
|
|
||||||
userinfo.token.claim: true
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "clientAddress"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "guardian-scripts"
|
|
||||||
clientId: "guardian-scripts"
|
|
||||||
description: ""
|
|
||||||
rootUrl: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
adminUrl: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
baseUrl: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
surrogateAuthRequired: false
|
|
||||||
enabled: true
|
|
||||||
alwaysDisplayInConsole: false
|
|
||||||
clientAuthenticatorType: "client-secret"
|
|
||||||
redirectUris:
|
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/univention/guardian/*"
|
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/guardian/*"
|
|
||||||
webOrigins:
|
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
bearerOnly: false
|
|
||||||
consentRequired: false
|
|
||||||
standardFlowEnabled: true
|
|
||||||
implicitFlowEnabled: false
|
|
||||||
directAccessGrantsEnabled: true
|
|
||||||
serviceAccountsEnabled: false
|
|
||||||
publicClient: true
|
|
||||||
frontchannelLogout: false
|
|
||||||
protocol: "openid-connect"
|
|
||||||
fullScopeAllowed: true
|
|
||||||
protocolMappers:
|
|
||||||
- name: "email"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-property-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "email"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "email"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "guardian-audience"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-audience-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
included.client.audience: "guardian"
|
|
||||||
id.token.claim: false
|
|
||||||
access.token.claim: true
|
|
||||||
userinfo.token.claim: false
|
|
||||||
- name: "username"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-property-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "username"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "preferred_username"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "uid"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "uid"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "uid"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "audiencemap"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-audience-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
included.client.audience: "guardian-scripts"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
userinfo.token.claim: true
|
|
||||||
- name: "dn"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
aggregate.attrs: false
|
|
||||||
multivalued: false
|
|
||||||
userinfo.token.claim: false
|
|
||||||
user.attribute: "LDAP_ENTRY_DN"
|
|
||||||
id.token.claim: false
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "dn"
|
|
||||||
jsonType.label: "String"
|
|
||||||
defaultClientScopes:
|
|
||||||
- "opendesk"
|
|
||||||
- "web-origins"
|
|
||||||
- "acr"
|
|
||||||
- "roles"
|
|
||||||
- "profile"
|
|
||||||
- "email"
|
|
||||||
optionalClientScopes:
|
|
||||||
- "address"
|
|
||||||
- "phone"
|
|
||||||
- "offline_access"
|
|
||||||
- "microprofile-jwt"
|
|
||||||
- name: "guardian-ui"
|
|
||||||
clientId: "guardian-ui"
|
|
||||||
rootUrl: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
baseUrl: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
|
||||||
clientAuthenticatorType: "client-secret"
|
|
||||||
redirectUris:
|
|
||||||
- "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/univention/guardian/*"
|
|
||||||
standardFlowEnabled: true
|
|
||||||
publicClient: true
|
|
||||||
implicitFlowEnabled: false
|
|
||||||
directAccessGrantsEnabled: false
|
|
||||||
serviceAccountsEnabled: false
|
|
||||||
protocol: "openid-connect"
|
|
||||||
fullScopeAllowed: true
|
|
||||||
protocolMappers:
|
|
||||||
- name: "uid"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "uid"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "uid"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "username"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-property-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "username"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "preferred_username"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "dn"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-attribute-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: "false"
|
|
||||||
user.attribute: "LDAP_ENTRY_DN"
|
|
||||||
id.token.claim: false
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "dn"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "audiencemap"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-audience-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
included.client.audience: "guardian"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
userinfo.token.claim: true
|
|
||||||
- name: "email"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-usermodel-property-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
userinfo.token.claim: true
|
|
||||||
user.attribute: "email"
|
|
||||||
id.token.claim: true
|
|
||||||
access.token.claim: true
|
|
||||||
claim.name: "email"
|
|
||||||
jsonType.label: "String"
|
|
||||||
- name: "guardian-audience"
|
|
||||||
protocol: "openid-connect"
|
|
||||||
protocolMapper: "oidc-audience-mapper"
|
|
||||||
consentRequired: false
|
|
||||||
config:
|
|
||||||
included.client.audience: "guardian"
|
|
||||||
id.token.claim: false
|
|
||||||
access.token.claim: true
|
|
||||||
userinfo.token.claim: false
|
|
||||||
|
|
||||||
|
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -10,8 +10,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.dovecot.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.dovecot.registry }}/{{ .Values.charts.dovecot.repository }}"
|
||||||
{{ .Values.charts.dovecot.repository }}"
|
|
||||||
|
|
||||||
# Open-Xchange
|
# Open-Xchange
|
||||||
- name: "open-xchange-repo"
|
- name: "open-xchange-repo"
|
||||||
@@ -20,8 +19,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.openXchangeAppSuite.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.openXchangeAppSuite.registry }}/{{ .Values.charts.openXchangeAppSuite.repository }}"
|
||||||
{{ .Values.charts.openXchangeAppSuite.repository }}"
|
|
||||||
|
|
||||||
# openDesk Open-Xchange Bootstrap
|
# openDesk Open-Xchange Bootstrap
|
||||||
# Source:
|
# Source:
|
||||||
@@ -32,8 +30,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.openXchangeAppSuiteBootstrap.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.openXchangeAppSuiteBootstrap.registry }}/{{ .Values.charts.openXchangeAppSuiteBootstrap.repository }}"
|
||||||
{{ .Values.charts.openXchangeAppSuiteBootstrap.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "dovecot"
|
- name: "dovecot"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
---
|
|
||||||
bases:
|
|
||||||
- "../../bases/environments.yaml"
|
|
||||||
---
|
|
||||||
helmfiles:
|
|
||||||
- path: "./helmfile-child.yaml"
|
|
||||||
values:
|
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
|
||||||
...
|
|
||||||
12
helmfile/apps/open-xchange/helmfile.yaml.gotmpl
Normal file
12
helmfile/apps/open-xchange/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
{{/*
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
---
|
---
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.dovecot.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.dovecot.registry | quote }}
|
||||||
repository: {{ .Values.images.dovecot.repository | quote }}
|
repository: {{ .Values.images.dovecot.repository | quote }}
|
||||||
tag: {{ .Values.images.dovecot.tag | quote }}
|
tag: {{ .Values.images.dovecot.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -15,7 +16,7 @@ imagePullSecrets:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
dovecot:
|
dovecot:
|
||||||
mailDomain: {{ .Values.global.domain | quote }}
|
mailDomain: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
|
||||||
password: {{ .Values.secrets.dovecot.doveadm | quote }}
|
password: {{ .Values.secrets.dovecot.doveadm | quote }}
|
||||||
ldap:
|
ldap:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -23,7 +24,7 @@ dovecot:
|
|||||||
port: 389
|
port: 389
|
||||||
base: "dc=swp-ldap,dc=internal"
|
base: "dc=swp-ldap,dc=internal"
|
||||||
dn: "uid=ldapsearch_dovecot,cn=users,dc=swp-ldap,dc=internal"
|
dn: "uid=ldapsearch_dovecot,cn=users,dc=swp-ldap,dc=internal"
|
||||||
password: {{ .Values.secrets.univentionManagementStack.ldapSearch.dovecot | quote }}
|
password: {{ .Values.secrets.nubus.ldapSearch.dovecot | quote }}
|
||||||
oidc:
|
oidc:
|
||||||
enabled: true
|
enabled: true
|
||||||
clientID: "opendesk-dovecot"
|
clientID: "opendesk-dovecot"
|
||||||
@@ -31,14 +32,12 @@ dovecot:
|
|||||||
introspectionHost: {{ printf "%s.%s" .Values.global.hosts.keycloak .Values.global.domain | quote }}
|
introspectionHost: {{ printf "%s.%s" .Values.global.hosts.keycloak .Values.global.domain | quote }}
|
||||||
introspectionPath: "/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token/introspect"
|
introspectionPath: "/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token/introspect"
|
||||||
usernameAttribute: "opendesk_username"
|
usernameAttribute: "opendesk_username"
|
||||||
loginTrustedNetworks: {{ .Values.cluster.networking.cidr | quote }}
|
loginTrustedNetworks: {{ join " " .Values.cluster.networking.cidr | quote }}
|
||||||
|
|
||||||
submission:
|
submission:
|
||||||
enabled: true
|
enabled: true
|
||||||
ssl: "no"
|
ssl: "no"
|
||||||
host: "postfix:25"
|
host: "{{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain }}:25"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
certificate:
|
certificate:
|
||||||
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
{{/*
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
---
|
---
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
deletePodsOnSuccessTimeout: {{ .Values.cleanup.deletePodsOnSuccessTimeout }}
|
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeBootstrap.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.openxchangeBootstrap.registry | quote }}
|
||||||
url: {{ .Values.images.openxchangeBootstrap.repository | quote }}
|
url: {{ .Values.images.openxchangeBootstrap.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeBootstrap.tag | quote }}
|
tag: {{ .Values.images.openxchangeBootstrap.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
appsuite:
|
appsuite:
|
||||||
core-mw:
|
core-mw:
|
||||||
@@ -23,7 +26,7 @@ appsuite:
|
|||||||
type: "adminDN"
|
type: "adminDN"
|
||||||
adminDN:
|
adminDN:
|
||||||
dn: "uid=ldapsearch_ox,cn=users,dc=swp-ldap,dc=internal"
|
dn: "uid=ldapsearch_ox,cn=users,dc=swp-ldap,dc=internal"
|
||||||
password: {{ .Values.secrets.univentionManagementStack.ldapSearch.ox | quote }}
|
password: {{ .Values.secrets.nubus.ldapSearch.ox | quote }}
|
||||||
|
|
||||||
uiSettings:
|
uiSettings:
|
||||||
# Enterprise contact picker
|
# Enterprise contact picker
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{{/*
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
@@ -19,13 +20,14 @@ global:
|
|||||||
|
|
||||||
nextcloud-integration-ui:
|
nextcloud-integration-ui:
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeNextcloudIntegrationUI.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeNextcloudIntegrationUI.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangeNextcloudIntegrationUI.repository | quote }}
|
repository: {{ .Values.images.openxchangeNextcloudIntegrationUI.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeNextcloudIntegrationUI.tag | quote }}
|
tag: {{ .Values.images.openxchangeNextcloudIntegrationUI.tag | quote }}
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
{{- range .Values.global.imagePullSecrets }}
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangeNextcloudIntegrationUI }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.openxchangeNextcloudIntegrationUI | toYaml | nindent 4 }}
|
{{ .Values.resources.openxchangeNextcloudIntegrationUI | toYaml | nindent 4 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -46,7 +48,7 @@ nextcloud-integration-ui:
|
|||||||
|
|
||||||
public-sector-ui:
|
public-sector-ui:
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangePublicSectorUI.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangePublicSectorUI.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangePublicSectorUI.repository | quote }}
|
repository: {{ .Values.images.openxchangePublicSectorUI.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangePublicSectorUI.tag | quote }}
|
tag: {{ .Values.images.openxchangePublicSectorUI.tag | quote }}
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
@@ -54,6 +56,7 @@ public-sector-ui:
|
|||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangePublicSectorUI }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.openxchangePublicSectorUI | toYaml | nindent 4 }}
|
{{ .Values.resources.openxchangePublicSectorUI | toYaml | nindent 4 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -131,9 +134,10 @@ appsuite:
|
|||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.openxchangeGotenberg.registry }}/{{ .Values.images.openxchangeGotenberg.repository }}"
|
repository: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeGotenberg.registry }}/{{ .Values.images.openxchangeGotenberg.repository }}"
|
||||||
tag: {{ .Values.images.openxchangeGotenberg.tag | quote }}
|
tag: {{ .Values.images.openxchangeGotenberg.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangeGotenberg }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.openxchangeGotenberg | toYaml | nindent 8 }}
|
{{ .Values.resources.openxchangeGotenberg | toYaml | nindent 8 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -185,7 +189,7 @@ appsuite:
|
|||||||
com.openexchange.oidc.opLogoutEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/logout"
|
com.openexchange.oidc.opLogoutEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/logout"
|
||||||
com.openexchange.oidc.opTokenEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token"
|
com.openexchange.oidc.opTokenEndpoint: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token"
|
||||||
com.openexchange.oidc.rpRedirectURIAuth: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/appsuite/api/oidc/auth"
|
com.openexchange.oidc.rpRedirectURIAuth: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/appsuite/api/oidc/auth"
|
||||||
com.openexchange.oidc.rpRedirectURILogout: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
com.openexchange.oidc.rpRedirectURILogout: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
|
||||||
com.openexchange.oidc.rpRedirectURIPostSSOLogout: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/appsuite/api/oidc/logout"
|
com.openexchange.oidc.rpRedirectURIPostSSOLogout: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}/appsuite/api/oidc/logout"
|
||||||
com.openexchange.oidc.ssoLogout: "true"
|
com.openexchange.oidc.ssoLogout: "true"
|
||||||
com.openexchange.oidc.startDefaultBackend: "true"
|
com.openexchange.oidc.startDefaultBackend: "true"
|
||||||
@@ -241,6 +245,11 @@ appsuite:
|
|||||||
com.openexchange.file.storage.nextcloud.oauth.url: "http://opendesk-nextcloud-apache2/"
|
com.openexchange.file.storage.nextcloud.oauth.url: "http://opendesk-nextcloud-apache2/"
|
||||||
com.openexchange.file.storage.nextcloud.oauth.webdav.username.strategy: "user"
|
com.openexchange.file.storage.nextcloud.oauth.webdav.username.strategy: "user"
|
||||||
com.openexchange.nextcloud.filepicker.includeAccessToken: "false"
|
com.openexchange.nextcloud.filepicker.includeAccessToken: "false"
|
||||||
|
# Element integration
|
||||||
|
com.openexchange.conference.element.enabled: "true"
|
||||||
|
com.openexchange.conference.element.meetingHostUrl: http://matrix-neodatefix-bot
|
||||||
|
com.openexchange.conference.element.matrixLoginUrl: http://opendesk-synapse-web:8008/_matrix/client/v3/login
|
||||||
|
com.openexchange.conference.element.matrixUuidClaimName: opendesk_useruuid
|
||||||
# GDPR
|
# GDPR
|
||||||
com.openexchange.gdpr.dataexport.enabled: "false"
|
com.openexchange.gdpr.dataexport.enabled: "false"
|
||||||
com.openexchange.gdpr.dataexport.active: "false"
|
com.openexchange.gdpr.dataexport.active: "false"
|
||||||
@@ -259,6 +268,7 @@ appsuite:
|
|||||||
com.openexchange.cookie.hash.salt: {{ .Values.secrets.oxAppsuite.cookieHashSalt | quote }}
|
com.openexchange.cookie.hash.salt: {{ .Values.secrets.oxAppsuite.cookieHashSalt | quote }}
|
||||||
com.openexchange.sessiond.encryptionKey: {{ .Values.secrets.oxAppsuite.sessiondEncryptionKey | quote }}
|
com.openexchange.sessiond.encryptionKey: {{ .Values.secrets.oxAppsuite.sessiondEncryptionKey | quote }}
|
||||||
com.openexchange.share.cryptKey: {{ .Values.secrets.oxAppsuite.shareCryptKey | quote }}
|
com.openexchange.share.cryptKey: {{ .Values.secrets.oxAppsuite.shareCryptKey | quote }}
|
||||||
|
com.openexchange.conference.element.authToken: {{ .Values.secrets.oxAppsuite.synapseAsToken | quote }}
|
||||||
propertiesFiles:
|
propertiesFiles:
|
||||||
/opt/open-xchange/etc/AdminDaemon.properties:
|
/opt/open-xchange/etc/AdminDaemon.properties:
|
||||||
MASTER_ACCOUNT_OVERRIDE: "true"
|
MASTER_ACCOUNT_OVERRIDE: "true"
|
||||||
@@ -269,7 +279,7 @@ appsuite:
|
|||||||
/opt/open-xchange/etc/ldapauth.properties:
|
/opt/open-xchange/etc/ldapauth.properties:
|
||||||
java.naming.provider.url: "ldap://{{ .Values.ldap.host }}:389/dc=swp-ldap,dc=internal"
|
java.naming.provider.url: "ldap://{{ .Values.ldap.host }}:389/dc=swp-ldap,dc=internal"
|
||||||
bindDN: "uid=ldapsearch_ox,cn=users,dc=swp-ldap,dc=internal"
|
bindDN: "uid=ldapsearch_ox,cn=users,dc=swp-ldap,dc=internal"
|
||||||
bindDNPassword: {{ .Values.secrets.univentionManagementStack.ldapSearch.ox | quote }}
|
bindDNPassword: {{ .Values.secrets.nubus.ldapSearch.ox | quote }}
|
||||||
bindOnly: "false"
|
bindOnly: "false"
|
||||||
/opt/open-xchange/etc/antivirus.properties:
|
/opt/open-xchange/etc/antivirus.properties:
|
||||||
com.openexchange.antivirus.enabled: "true"
|
com.openexchange.antivirus.enabled: "true"
|
||||||
@@ -311,7 +321,7 @@ appsuite:
|
|||||||
# io.ox/mail//contactCollectOnMailAccess: "true"
|
# io.ox/mail//contactCollectOnMailAccess: "true"
|
||||||
# Dynamic theme
|
# Dynamic theme
|
||||||
io.ox/dynamic-theme//mainColor: {{ .Values.theme.colors.primary | quote }}
|
io.ox/dynamic-theme//mainColor: {{ .Values.theme.colors.primary | quote }}
|
||||||
io.ox/dynamic-theme//logoURL: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/univention/portal/icons/logos/domain.svg"
|
io.ox/dynamic-theme//logoURL: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/univention/portal/icons/logos/domain.svg"
|
||||||
io.ox/dynamic-theme//topbarBackground: {{ .Values.theme.colors.white | quote }}
|
io.ox/dynamic-theme//topbarBackground: {{ .Values.theme.colors.white | quote }}
|
||||||
io.ox/dynamic-theme//topbarColor: {{ .Values.theme.colors.black | quote }}
|
io.ox/dynamic-theme//topbarColor: {{ .Values.theme.colors.black | quote }}
|
||||||
io.ox/dynamic-theme//listSelected: {{ .Values.theme.colors.primary15 | quote }}
|
io.ox/dynamic-theme//listSelected: {{ .Values.theme.colors.primary15 | quote }}
|
||||||
@@ -326,15 +336,16 @@ appsuite:
|
|||||||
oxguardpass: |
|
oxguardpass: |
|
||||||
{{ .Values.secrets.oxAppsuite.oxguardMC }}
|
{{ .Values.secrets.oxAppsuite.oxguardMC }}
|
||||||
{{ .Values.secrets.oxAppsuite.oxguardRC }}
|
{{ .Values.secrets.oxAppsuite.oxguardRC }}
|
||||||
redis:
|
redis: &redisConfiguration
|
||||||
enabled: true
|
enabled: true
|
||||||
mode: "standalone"
|
mode: "standalone"
|
||||||
hosts:
|
hosts:
|
||||||
- "redis-master"
|
- "redis-master:6379"
|
||||||
auth:
|
auth:
|
||||||
|
enabled: true
|
||||||
password: {{ .Values.secrets.redis.password | quote }}
|
password: {{ .Values.secrets.redis.password | quote }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeCoreMW.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeCoreMW.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangeCoreMW.repository | quote }}
|
repository: {{ .Values.images.openxchangeCoreMW.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeCoreMW.tag | quote }}
|
tag: {{ .Values.images.openxchangeCoreMW.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -349,6 +360,7 @@ appsuite:
|
|||||||
{{- range .Values.global.imagePullSecrets }}
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
replicas: {{ .Values.replicas.openxchangeCoreMW }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.openxchangeCoreMW | toYaml | nindent 6 }}
|
{{ .Values.resources.openxchangeCoreMW | toYaml | nindent 6 }}
|
||||||
|
|
||||||
@@ -359,10 +371,11 @@ appsuite:
|
|||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeCoreUI.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeCoreUI.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangeCoreUI.repository | quote }}
|
repository: {{ .Values.images.openxchangeCoreUI.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeCoreUI.tag | quote }}
|
tag: {{ .Values.images.openxchangeCoreUI.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangeCoreUI }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.openxchangeCoreUI | toYaml | nindent 6 }}
|
{{ .Values.resources.openxchangeCoreUI | toYaml | nindent 6 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -391,25 +404,18 @@ appsuite:
|
|||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeCoreUIMiddleware.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeCoreUIMiddleware.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangeCoreUIMiddleware.repository | quote }}
|
repository: {{ .Values.images.openxchangeCoreUIMiddleware.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeCoreUIMiddleware.tag | quote }}
|
tag: {{ .Values.images.openxchangeCoreUIMiddleware.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
overrides: {}
|
overrides: {}
|
||||||
redis:
|
redis: *redisConfiguration
|
||||||
mode: "standalone"
|
replicaCount: {{ .Values.replicas.openxchangeCoreUIMiddleware }}
|
||||||
hosts:
|
|
||||||
- "redis-master:6379"
|
|
||||||
auth:
|
|
||||||
enabled: true
|
|
||||||
password: {{ .Values.secrets.redis.password | quote }}
|
|
||||||
# Workaround for a bug in 8.23
|
|
||||||
ca: ""
|
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.openxchangeCoreUIMiddleware | toYaml | nindent 6 }}
|
{{ .Values.resources.openxchangeCoreUIMiddleware | toYaml | nindent 6 }}
|
||||||
updater:
|
updater:
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.openxchangeCoreUIMiddlewareUpdater | toYaml | nindent 6 }}
|
{{ .Values.resources.openxchangeCoreUIMiddlewareUpdater | toYaml | nindent 8 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -438,9 +444,11 @@ appsuite:
|
|||||||
remoteCache:
|
remoteCache:
|
||||||
enabled: false
|
enabled: false
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeDocumentConverter.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeDocumentConverter.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangeDocumentConverter.repository | quote }}
|
repository: {{ .Values.images.openxchangeDocumentConverter.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeDocumentConverter.tag | quote }}
|
tag: {{ .Values.images.openxchangeDocumentConverter.tag | quote }}
|
||||||
|
redis: *redisConfiguration
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangeCoreDocumentConverter }}
|
||||||
resources:
|
resources:
|
||||||
{{- .Values.resources.openxchangeCoreDocumentConverter | toYaml | nindent 6 }}
|
{{- .Values.resources.openxchangeCoreDocumentConverter | toYaml | nindent 6 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -482,10 +490,11 @@ appsuite:
|
|||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeCoreGuidedtours.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeCoreGuidedtours.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangeCoreGuidedtours.repository | quote }}
|
repository: {{ .Values.images.openxchangeCoreGuidedtours.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeCoreGuidedtours.tag | quote }}
|
tag: {{ .Values.images.openxchangeCoreGuidedtours.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangeCoreGuidedtours }}
|
||||||
resources:
|
resources:
|
||||||
{{- .Values.resources.openxchangeCoreGuidedtours | toYaml | nindent 6 }}
|
{{- .Values.resources.openxchangeCoreGuidedtours | toYaml | nindent 6 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -510,7 +519,7 @@ appsuite:
|
|||||||
basicAuthLogin: "oxlogin"
|
basicAuthLogin: "oxlogin"
|
||||||
basicAuthPassword: {{ .Values.secrets.oxAppsuite.basicAuthPassword | quote }}
|
basicAuthPassword: {{ .Values.secrets.oxAppsuite.basicAuthPassword | quote }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeImageConverter.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeImageConverter.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangeImageConverter.repository | quote }}
|
repository: {{ .Values.images.openxchangeImageConverter.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeImageConverter.tag | quote }}
|
tag: {{ .Values.images.openxchangeImageConverter.tag | quote }}
|
||||||
objectCache:
|
objectCache:
|
||||||
@@ -519,6 +528,8 @@ appsuite:
|
|||||||
endpoint: "."
|
endpoint: "."
|
||||||
accessKey: "."
|
accessKey: "."
|
||||||
secretKey: "."
|
secretKey: "."
|
||||||
|
redis: *redisConfiguration
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangeCoreImageConverter }}
|
||||||
resources:
|
resources:
|
||||||
{{- .Values.resources.openxchangeCoreImageConverter | toYaml | nindent 6 }}
|
{{- .Values.resources.openxchangeCoreImageConverter | toYaml | nindent 6 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -545,9 +556,11 @@ appsuite:
|
|||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
image:
|
image:
|
||||||
repository: "{{ .Values.global.imageRegistry | default .Values.images.openxchangeGuardUI.registry }}/{{ .Values.images.openxchangeGuardUI.repository }}"
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeGuardUI.registry | quote }}
|
||||||
|
repository: {{ .Values.images.openxchangeGuardUI.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeGuardUI.tag | quote }}
|
tag: {{ .Values.images.openxchangeGuardUI.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangeGuardUI }}
|
||||||
resources:
|
resources:
|
||||||
{{- .Values.resources.openxchangeGuardUI | toYaml | nindent 6 }}
|
{{- .Values.resources.openxchangeGuardUI | toYaml | nindent 6 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
@@ -570,7 +583,7 @@ appsuite:
|
|||||||
core-user-guide:
|
core-user-guide:
|
||||||
enabled: true
|
enabled: true
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeCoreUserGuide.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeCoreUserGuide.registry | quote }}
|
||||||
repository: {{ .Values.images.openxchangeCoreUserGuide.repository | quote }}
|
repository: {{ .Values.images.openxchangeCoreUserGuide.repository | quote }}
|
||||||
tag: {{ .Values.images.openxchangeCoreUserGuide.tag | quote }}
|
tag: {{ .Values.images.openxchangeCoreUserGuide.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -578,6 +591,7 @@ appsuite:
|
|||||||
{{- range .Values.global.imagePullSecrets }}
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
replicaCount: {{ .Values.replicas.openxchangeCoreUserGuide }}
|
||||||
resources:
|
resources:
|
||||||
{{- .Values.resources.openxchangeCoreUserGuide | toYaml | nindent 6 }}
|
{{- .Values.resources.openxchangeCoreUserGuide | toYaml | nindent 6 }}
|
||||||
securityContext:
|
securityContext:
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.openprojectBootstrap.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.openprojectBootstrap.registry }}/{{ .Values.charts.openprojectBootstrap.repository }}"
|
||||||
{{ .Values.charts.openprojectBootstrap.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "opendesk-openproject-bootstrap"
|
- name: "opendesk-openproject-bootstrap"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
---
|
|
||||||
bases:
|
|
||||||
- "../../bases/environments.yaml"
|
|
||||||
---
|
|
||||||
helmfiles:
|
|
||||||
- path: "./helmfile-child.yaml"
|
|
||||||
values:
|
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
|
||||||
...
|
|
||||||
12
helmfile/apps/openproject-bootstrap/helmfile.yaml.gotmpl
Normal file
12
helmfile/apps/openproject-bootstrap/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{{/*
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
@@ -11,8 +12,8 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
keepPVCOnDelete: {{ .Values.cleanup.keepPVCOnDelete }}
|
keepPVCOnDelete: {{ .Values.debug.cleanup.keepPVCOnDelete }}
|
||||||
|
|
||||||
config:
|
config:
|
||||||
openproject:
|
openproject:
|
||||||
@@ -42,7 +43,7 @@ containerSecurityContext:
|
|||||||
{{ .Values.seLinuxOptions.openprojectBootstrap | toYaml | nindent 4 }}
|
{{ .Values.seLinuxOptions.openprojectBootstrap | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openprojectBootstrap.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openprojectBootstrap.registry | quote }}
|
||||||
repository: {{ .Values.images.openprojectBootstrap.repository | quote }}
|
repository: {{ .Values.images.openprojectBootstrap.repository | quote }}
|
||||||
tag: {{ .Values.images.openprojectBootstrap.tag | quote }}
|
tag: {{ .Values.images.openprojectBootstrap.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy |quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy |quote }}
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.openproject.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.openproject.registry }}/{{ .Values.charts.openproject.repository }}"
|
||||||
{{ .Values.charts.openproject.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "openproject"
|
- name: "openproject"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
---
|
|
||||||
bases:
|
|
||||||
- "../../bases/environments.yaml"
|
|
||||||
---
|
|
||||||
helmfiles:
|
|
||||||
- path: "./helmfile-child.yaml"
|
|
||||||
values:
|
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
|
||||||
...
|
|
||||||
12
helmfile/apps/openproject/helmfile.yaml.gotmpl
Normal file
12
helmfile/apps/openproject/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{{/*
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
@@ -31,16 +32,12 @@ environment:
|
|||||||
OPENPROJECT_USER__DEFAULT__TIMEZONE: "Europe/Berlin"
|
OPENPROJECT_USER__DEFAULT__TIMEZONE: "Europe/Berlin"
|
||||||
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"
|
||||||
OPENPROJECT_PER__PAGE__OPTIONS: "20, 50, 100, 200"
|
|
||||||
OPENPROJECT_EMAIL__DELIVERY__METHOD: "smtp"
|
OPENPROJECT_EMAIL__DELIVERY__METHOD: "smtp"
|
||||||
OPENPROJECT_SMTP__AUTHENTICATION: "plain"
|
|
||||||
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true"
|
|
||||||
OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "peer"
|
|
||||||
OPENPROJECT_DEFAULT__COMMENT__SORT__ORDER: "desc"
|
OPENPROJECT_DEFAULT__COMMENT__SORT__ORDER: "desc"
|
||||||
# Details: https://www.openproject-edge.com/docs/installation-and-operations/configuration/#seeding-ldap-connections
|
# Details: https://www.openproject-edge.com/docs/installation-and-operations/configuration/#seeding-ldap-connections
|
||||||
OPENPROJECT_SEED_LDAP_OPENDESK_HOST: {{ .Values.ldap.host | quote }}
|
OPENPROJECT_SEED_LDAP_OPENDESK_HOST: {{ .Values.ldap.host | quote }}
|
||||||
OPENPROJECT_SEED_LDAP_OPENDESK_PORT: "389"
|
OPENPROJECT_SEED_LDAP_OPENDESK_PORT: "389"
|
||||||
OPENPROJECT_SEED_LDAP_OPENDESK_BINDPASSWORD: {{ .Values.secrets.univentionManagementStack.ldapSearch.openproject | quote }}
|
OPENPROJECT_SEED_LDAP_OPENDESK_BINDPASSWORD: {{ .Values.secrets.nubus.ldapSearch.openproject | quote }}
|
||||||
OPENPROJECT_SEED_LDAP_OPENDESK_SECURITY: "plain_ldap"
|
OPENPROJECT_SEED_LDAP_OPENDESK_SECURITY: "plain_ldap"
|
||||||
OPENPROJECT_SEED_LDAP_OPENDESK_BINDUSER: "uid=ldapsearch_openproject,cn=users,dc=swp-ldap,dc=internal"
|
OPENPROJECT_SEED_LDAP_OPENDESK_BINDUSER: "uid=ldapsearch_openproject,cn=users,dc=swp-ldap,dc=internal"
|
||||||
OPENPROJECT_SEED_LDAP_OPENDESK_BASEDN: "dc=swp-ldap,dc=internal"
|
OPENPROJECT_SEED_LDAP_OPENDESK_BASEDN: "dc=swp-ldap,dc=internal"
|
||||||
@@ -60,27 +57,33 @@ environment:
|
|||||||
OPENPROJECT_AUTHENTICATION_GLOBAL__BASIC__AUTH_USER: {{ .Values.secrets.openproject.apiAdminUsername | quote }}
|
OPENPROJECT_AUTHENTICATION_GLOBAL__BASIC__AUTH_USER: {{ .Values.secrets.openproject.apiAdminUsername | quote }}
|
||||||
OPENPROJECT_AUTHENTICATION_GLOBAL__BASIC__AUTH_PASSWORD: {{ .Values.secrets.openproject.apiAdminPassword | quote }}
|
OPENPROJECT_AUTHENTICATION_GLOBAL__BASIC__AUTH_PASSWORD: {{ .Values.secrets.openproject.apiAdminPassword | quote }}
|
||||||
OPENPROJECT_SOUVAP__NAVIGATION__SECRET: {{ .Values.secrets.centralnavigation.apiKey | quote }}
|
OPENPROJECT_SOUVAP__NAVIGATION__SECRET: {{ .Values.secrets.centralnavigation.apiKey | quote }}
|
||||||
OPENPROJECT_SOUVAP__NAVIGATION__URL: "https://{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}/univention/portal/navigation.json?base=https%3A//{{ .Values.global.hosts.univentionManagementStack }}.{{ .Values.global.domain }}"
|
OPENPROJECT_SOUVAP__NAVIGATION__URL: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/univention/portal/navigation.json?base=https%3A//{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
|
||||||
OPENPROJECT_SMTP__DOMAIN: {{ .Values.global.domain | quote }}
|
OPENPROJECT_SMTP__DOMAIN: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
|
||||||
OPENPROJECT_SMTP__USER__NAME: {{ .Values.smtp.username | quote }}
|
OPENPROJECT_SMTP__USER__NAME: ""
|
||||||
OPENPROJECT_SMTP__PASSWORD: {{ .Values.smtp.password | quote }}
|
OPENPROJECT_SMTP__PASSWORD: ""
|
||||||
OPENPROJECT_SMTP__PORT: {{ .Values.smtp.port | quote }}
|
OPENPROJECT_SMTP__PORT: 25
|
||||||
OPENPROJECT_SMTP__SSL: "false" # (default=false)
|
OPENPROJECT_SMTP__SSL: "false" # (default=false)
|
||||||
OPENPROJECT_SMTP__ADDRESS: {{ .Values.smtp.host | quote }}
|
OPENPROJECT_SMTP__ADDRESS: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
|
||||||
OPENPROJECT_MAIL__FROM: "do-not-reply@{{ .Values.global.domain }}"
|
OPENPROJECT_SMTP__AUTHENTICATION: "none"
|
||||||
OPENPROJECT_HOME__URL: {{ printf "https://%s.%s/" .Values.global.hosts.univentionManagementStack .Values.global.domain | quote }}
|
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "false"
|
||||||
|
OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "none"
|
||||||
|
OPENPROJECT_MAIL__FROM: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
|
||||||
|
OPENPROJECT_HOME__URL: {{ printf "https://%s.%s/" .Values.global.hosts.nubus .Values.global.domain | quote }}
|
||||||
OPENPROJECT_OPENID__CONNECT_KEYCLOAK_ISSUER: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
|
OPENPROJECT_OPENID__CONNECT_KEYCLOAK_ISSUER: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
|
||||||
OPENPROJECT_OPENID__CONNECT_KEYCLOAK_POST__LOGOUT__REDIRECT__URI: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/"
|
OPENPROJECT_OPENID__CONNECT_KEYCLOAK_POST__LOGOUT__REDIRECT__URI: "https://{{ .Values.global.hosts.openproject }}.{{ .Values.global.domain }}/"
|
||||||
|
{{- if .Values.enterprise.openproject.token }}
|
||||||
|
OPENPROJECT_ENTERPRISE__TOKEN: {{ .Values.enterprise.openproject.token | quote }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openproject.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openproject.registry | quote }}
|
||||||
repository: {{ .Values.images.openproject.repository | quote }}
|
repository: {{ .Values.images.openproject.repository | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
tag: {{ .Values.images.openproject.tag | quote }}
|
tag: {{ .Values.images.openproject.tag | quote }}
|
||||||
|
|
||||||
initdb:
|
initdb:
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.openprojectInitDb.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.openprojectInitDb.registry | quote }}
|
||||||
repository: {{ .Values.images.openprojectInitDb.repository | quote }}
|
repository: {{ .Values.images.openprojectInitDb.repository | quote }}
|
||||||
tag: {{ .Values.images.openprojectInitDb.tag | quote }}
|
tag: {{ .Values.images.openprojectInitDb.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -129,7 +132,7 @@ openproject:
|
|||||||
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
|
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
|
||||||
identifier: "opendesk-openproject"
|
identifier: "opendesk-openproject"
|
||||||
provider: "keycloak"
|
provider: "keycloak"
|
||||||
scope: "[openid,opendesk]"
|
scope: "[openid,opendesk-openproject-scope]"
|
||||||
secret: {{ .Values.secrets.keycloak.clientSecret.openproject | quote }}
|
secret: {{ .Values.secrets.keycloak.clientSecret.openproject | quote }}
|
||||||
tokenEndpoint: "/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token"
|
tokenEndpoint: "/realms/{{ .Values.platform.realm }}/protocol/openid-connect/token"
|
||||||
userinfoEndpoint: "/realms/{{ .Values.platform.realm }}/protocol/openid-connect/userinfo"
|
userinfoEndpoint: "/realms/{{ .Values.platform.realm }}/protocol/openid-connect/userinfo"
|
||||||
|
|||||||
@@ -7,8 +7,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.oxConnector.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.oxConnector.registry }}/{{ .Values.charts.oxConnector.repository }}"
|
||||||
{{ .Values.charts.oxConnector.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "ox-connector"
|
- name: "ox-connector"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
---
|
|
||||||
bases:
|
|
||||||
- "../../bases/environments.yaml"
|
|
||||||
---
|
|
||||||
helmfiles:
|
|
||||||
- path: "./helmfile-child.yaml"
|
|
||||||
values:
|
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
|
||||||
...
|
|
||||||
12
helmfile/apps/provisioning/helmfile.yaml.gotmpl
Normal file
12
helmfile/apps/provisioning/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
@@ -1,12 +1,25 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.oxConnector.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.oxConnector.registry | quote }}
|
||||||
repository: {{ .Values.images.oxConnector.repository | quote }}
|
repository: {{ .Values.images.oxConnector.repository | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
tag: {{ .Values.images.oxConnector.tag | quote }}
|
tag: {{ .Values.images.oxConnector.tag | quote }}
|
||||||
|
|
||||||
|
waitForDependency:
|
||||||
|
registry: {{ .Values.global.imageRegistry | default .Values.images.nubusWaitForDependency.registry | quote }}
|
||||||
|
repository: {{ .Values.images.nubusWaitForDependency.repository }}
|
||||||
|
imagePullPolicy: {{ .Values.global.imagePullPolicy }}
|
||||||
|
pullSecrets:
|
||||||
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
|
- name: {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
tag: {{ .Values.images.nubusWaitForDependency.tag | quote }}
|
||||||
|
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
{{- range .Values.global.imagePullSecrets }}
|
{{- range .Values.global.imagePullSecrets }}
|
||||||
- name: {{ . | quote }}
|
- name: {{ . | quote }}
|
||||||
@@ -16,16 +29,8 @@ ingress:
|
|||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
oxConnector:
|
oxConnector:
|
||||||
caCert: "ucctempldapstring"
|
|
||||||
debugLevel: {{ if .Values.debug.enabled }}"4"{{ else }}"1"{{ end }}
|
|
||||||
domainName: {{ .Values.global.domain | quote }}
|
domainName: {{ .Values.global.domain | 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 }}
|
|
||||||
ldapBaseDn: "dc=swp-ldap,dc=internal"
|
|
||||||
ldapHostDn: "cn=admin,dc=swp-ldap,dc=internal"
|
|
||||||
tlsMode: "off"
|
|
||||||
notifierServer: {{ .Values.ldap.notifierHost | quote }}
|
|
||||||
oxDefaultContext: "1"
|
oxDefaultContext: "1"
|
||||||
oxImapServer: "imap://127.0.0.1:143"
|
oxImapServer: "imap://127.0.0.1:143"
|
||||||
oxLocalTimezone: "Europe/Berlin"
|
oxLocalTimezone: "Europe/Berlin"
|
||||||
@@ -35,6 +40,13 @@ oxConnector:
|
|||||||
oxSmtpServer: "smtp://127.0.0.1:587"
|
oxSmtpServer: "smtp://127.0.0.1:587"
|
||||||
oxSoapServer: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
|
oxSoapServer: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
|
||||||
|
|
||||||
|
provisioningApi:
|
||||||
|
connection:
|
||||||
|
baseUrl: "http://ums-provisioning-api"
|
||||||
|
auth:
|
||||||
|
username: "ox-connector"
|
||||||
|
password: {{ .Values.secrets.oxConnector.provisioningApiPassword | quote }}
|
||||||
|
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.oxConnector | toYaml | nindent 2 }}
|
{{ .Values.resources.oxConnector | toYaml | nindent 2 }}
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.otterize.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.otterize.registry }}/{{ .Values.charts.otterize.repository }}"
|
||||||
{{ .Values.charts.otterize.repository }}"
|
|
||||||
|
|
||||||
# openDesk Home
|
# openDesk Home
|
||||||
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-home
|
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-home
|
||||||
@@ -21,8 +20,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.home.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.home.registry }}/{{ .Values.charts.home.repository }}"
|
||||||
{{ .Values.charts.home.repository }}"
|
|
||||||
|
|
||||||
# openDesk Certificates
|
# openDesk Certificates
|
||||||
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-certificates
|
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-certificates
|
||||||
@@ -32,8 +30,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.certificates.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.certificates.registry }}/{{ .Values.charts.certificates.repository }}"
|
||||||
{{ .Values.charts.certificates.repository }}"
|
|
||||||
|
|
||||||
# openDesk PostgreSQL
|
# openDesk PostgreSQL
|
||||||
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-postgresql
|
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-postgresql
|
||||||
@@ -43,8 +40,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.postgresql.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.postgresql.registry }}/{{ .Values.charts.postgresql.repository }}"
|
||||||
{{ .Values.charts.postgresql.repository }}"
|
|
||||||
|
|
||||||
# openDesk MariaDB
|
# openDesk MariaDB
|
||||||
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-mariadb
|
# Source: https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-mariadb
|
||||||
@@ -54,8 +50,17 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.mariadb.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.mariadb.registry }}/{{ .Values.charts.mariadb.repository }}"
|
||||||
{{ .Values.charts.mariadb.repository }}"
|
|
||||||
|
# openDesk dkimpy-milter
|
||||||
|
# https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-dkimpy-milter
|
||||||
|
- name: "dkimpy-repo"
|
||||||
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
|
verify: {{ .Values.charts.dkimpy.verify }}
|
||||||
|
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
|
||||||
|
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
|
||||||
|
oci: true
|
||||||
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.dkimpy.registry }}/{{ .Values.charts.dkimpy.repository }}"
|
||||||
|
|
||||||
# openDesk Postfix
|
# openDesk Postfix
|
||||||
# https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-postfix
|
# https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-postfix
|
||||||
@@ -65,8 +70,7 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.postfix.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.postfix.registry }}/{{ .Values.charts.postfix.repository }}"
|
||||||
{{ .Values.charts.postfix.repository }}"
|
|
||||||
|
|
||||||
# openDesk ClamAV
|
# openDesk ClamAV
|
||||||
# https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-clamav
|
# https://gitlab.opencode.de/bmi/opendesk/components/platform-development/charts/opendesk-clamav
|
||||||
@@ -76,16 +80,14 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.clamav.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.clamav.registry }}/{{ .Values.charts.clamav.repository }}"
|
||||||
{{ .Values.charts.clamav.repository }}"
|
|
||||||
- name: "clamav-simple-repo"
|
- name: "clamav-simple-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.clamavSimple.verify }}
|
verify: {{ .Values.charts.clamavSimple.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.clamavSimple.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.clamavSimple.registry }}/{{ .Values.charts.clamavSimple.repository }}"
|
||||||
{{ .Values.charts.clamavSimple.repository }}"
|
|
||||||
|
|
||||||
# VMWare Bitnami
|
# VMWare Bitnami
|
||||||
# Source: https://github.com/bitnami/charts/
|
# Source: https://github.com/bitnami/charts/
|
||||||
@@ -95,24 +97,21 @@ repositories:
|
|||||||
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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.memcached.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.memcached.registry }}/{{ .Values.charts.memcached.repository }}"
|
||||||
{{ .Values.charts.memcached.repository }}"
|
|
||||||
- name: "redis-repo"
|
- name: "redis-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.redis.verify }}
|
verify: {{ .Values.charts.redis.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.redis.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.redis.registry }}/{{ .Values.charts.redis.repository }}"
|
||||||
{{ .Values.charts.redis.repository }}"
|
|
||||||
- name: "minio-repo"
|
- name: "minio-repo"
|
||||||
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
keyring: "../../files/gpg-pubkeys/opencode.gpg"
|
||||||
verify: {{ .Values.charts.minio.verify }}
|
verify: {{ .Values.charts.minio.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
|
||||||
url: "{{ .Values.global.helmRegistry | default .Values.charts.minio.registry }}/\
|
url: "{{ .Values.global.helmRegistry | default .Values.charts.minio.registry }}/{{ .Values.charts.minio.repository }}"
|
||||||
{{ .Values.charts.minio.repository }}"
|
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
- name: "opendesk-otterize"
|
- name: "opendesk-otterize"
|
||||||
@@ -178,6 +177,14 @@ releases:
|
|||||||
installed: {{ .Values.postfix.enabled }}
|
installed: {{ .Values.postfix.enabled }}
|
||||||
timeout: 900
|
timeout: 900
|
||||||
|
|
||||||
|
- name: "opendesk-dkimpy-milter"
|
||||||
|
chart: "dkimpy-repo/{{ .Values.charts.dkimpy.name }}"
|
||||||
|
version: "{{ .Values.charts.dkimpy.version }}"
|
||||||
|
values:
|
||||||
|
- "values-dkimpy.yaml.gotmpl"
|
||||||
|
installed: {{ .Values.dkimpy.enabled }}
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
- name: "clamav"
|
- name: "clamav"
|
||||||
chart: "clamav-repo/{{ .Values.charts.clamav.name }}"
|
chart: "clamav-repo/{{ .Values.charts.clamav.name }}"
|
||||||
version: "{{ .Values.charts.clamav.version }}"
|
version: "{{ .Values.charts.clamav.version }}"
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
---
|
|
||||||
bases:
|
|
||||||
- "../../bases/environments.yaml"
|
|
||||||
---
|
|
||||||
helmfiles:
|
|
||||||
- path: "./helmfile-child.yaml"
|
|
||||||
values:
|
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
|
||||||
...
|
|
||||||
12
helmfile/apps/services/helmfile.yaml.gotmpl
Normal file
12
helmfile/apps/services/helmfile.yaml.gotmpl
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
---
|
||||||
|
bases:
|
||||||
|
- "../../bases/environments.yaml"
|
||||||
|
---
|
||||||
|
helmfiles:
|
||||||
|
- path: "./helmfile-child.yaml.gotmpl"
|
||||||
|
values:
|
||||||
|
- {{ toYaml .Values | nindent 8 }}
|
||||||
|
...
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{{/*
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
SPDX-License-Identifier: Apache-2.0
|
SPDX-License-Identifier: Apache-2.0
|
||||||
*/}}
|
*/}}
|
||||||
@@ -6,13 +7,54 @@ SPDX-License-Identifier: Apache-2.0
|
|||||||
global:
|
global:
|
||||||
domain: {{ .Values.global.domain | quote }}
|
domain: {{ .Values.global.domain | quote }}
|
||||||
hosts:
|
hosts:
|
||||||
{{ .Values.global.hosts | toYaml | nindent 4 }}
|
{{- if .Values.collabora.enabled }}
|
||||||
|
collabora: {{ .Values.global.hosts.collabora }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.cryptpad.enabled }}
|
||||||
|
cryptpad: {{ .Values.global.hosts.cryptpad }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.element.enabled }}
|
||||||
|
element: {{ .Values.global.hosts.element }}
|
||||||
|
matrixNeoBoardWidget: {{ .Values.global.hosts.matrixNeoBoardWidget }}
|
||||||
|
matrixNeoChoiceWidget: {{ .Values.global.hosts.matrixNeoChoiceWidget }}
|
||||||
|
matrixNeoDateFixBot: {{ .Values.global.hosts.matrixNeoDateFixBot }}
|
||||||
|
matrixNeoDateFixWidget: {{ .Values.global.hosts.matrixNeoDateFixWidget }}
|
||||||
|
synapse: {{ .Values.global.hosts.synapse }}
|
||||||
|
synapseFederation: {{ .Values.global.hosts.synapseFederation }}
|
||||||
|
whiteboard: {{ .Values.global.hosts.whiteboard }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.intercom.enabled }}
|
||||||
|
intercomService: {{ .Values.global.hosts.intercomService }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.jitsi.enabled }}
|
||||||
|
jitsi: {{ .Values.global.hosts.jitsi }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.minio.enabled }}
|
||||||
|
minioApi: {{ .Values.global.hosts.minioApi }}
|
||||||
|
minioConsole: {{ .Values.global.hosts.minioConsole }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.nextcloud.enabled }}
|
||||||
|
nextcloud: {{ .Values.global.hosts.nextcloud }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.openproject.enabled }}
|
||||||
|
openproject: {{ .Values.global.hosts.openproject }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.oxAppsuite.enabled }}
|
||||||
|
openxchange: {{ .Values.global.hosts.openxchange }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.nubus.enabled }}
|
||||||
|
keycloak: {{ .Values.global.hosts.keycloak }}
|
||||||
|
nubus: {{ .Values.global.hosts.nubus }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.xwiki.enabled }}
|
||||||
|
xwiki: {{ .Values.global.hosts.xwiki }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
issuerRef:
|
issuerRef:
|
||||||
name: {{ .Values.certificate.issuerRef.name | quote }}
|
name: {{ .Values.certificate.issuerRef.name | quote }}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
keepRessourceOnDelete: {{ .Values.cleanup.keepRessourceOnDelete }}
|
keepRessourceOnDelete: {{ .Values.debug.cleanup.keepRessourceOnDelete }}
|
||||||
|
|
||||||
wildcard: {{ .Values.certificate.wildcard }}
|
wildcard: {{ .Values.certificate.wildcard }}
|
||||||
...
|
...
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
clamd:
|
clamd:
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
@@ -18,7 +21,7 @@ clamd:
|
|||||||
seLinuxOptions:
|
seLinuxOptions:
|
||||||
{{ .Values.seLinuxOptions.clamd | toYaml | nindent 6 }}
|
{{ .Values.seLinuxOptions.clamd | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.clamd.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.clamd.registry | quote }}
|
||||||
repository: {{ .Values.images.clamd.repository | quote }}
|
repository: {{ .Values.images.clamd.repository | quote }}
|
||||||
tag: {{ .Values.images.clamd.tag | quote }}
|
tag: {{ .Values.images.clamd.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -62,7 +65,7 @@ freshclam:
|
|||||||
seLinuxOptions:
|
seLinuxOptions:
|
||||||
{{ .Values.seLinuxOptions.freshclam | toYaml | nindent 6 }}
|
{{ .Values.seLinuxOptions.freshclam | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.freshclam.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.freshclam.registry | quote }}
|
||||||
repository: {{ .Values.images.freshclam.repository | quote }}
|
repository: {{ .Values.images.freshclam.repository | quote }}
|
||||||
tag: {{ .Values.images.freshclam.tag | quote }}
|
tag: {{ .Values.images.freshclam.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -73,7 +76,15 @@ freshclam:
|
|||||||
replicaCount: {{ .Values.replicas.freshclam }}
|
replicaCount: {{ .Values.replicas.freshclam }}
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.freshclam | toYaml | nindent 4 }}
|
{{ .Values.resources.freshclam | toYaml | nindent 4 }}
|
||||||
|
settings:
|
||||||
|
database:
|
||||||
|
auth:
|
||||||
|
{{ .Values.repositories.clamav.auth | toYaml | nindent 8 }}
|
||||||
|
mirror:
|
||||||
|
scheme: {{ .Values.repositories.clamav.mirror.scheme | quote }}
|
||||||
|
url: {{ .Values.repositories.clamav.mirror.url | quote }}
|
||||||
|
customURLs:
|
||||||
|
{{ .Values.repositories.clamav.customURLs | toYaml | nindent 8 }}
|
||||||
global:
|
global:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
@@ -95,7 +106,7 @@ icap:
|
|||||||
seLinuxOptions:
|
seLinuxOptions:
|
||||||
{{ .Values.seLinuxOptions.icap | toYaml | nindent 6 }}
|
{{ .Values.seLinuxOptions.icap | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.icap.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.icap.registry | quote }}
|
||||||
repository: {{ .Values.images.icap.repository | quote }}
|
repository: {{ .Values.images.icap.repository | quote }}
|
||||||
tag: {{ .Values.images.icap.tag | quote }}
|
tag: {{ .Values.images.icap.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -124,7 +135,7 @@ milter:
|
|||||||
seLinuxOptions:
|
seLinuxOptions:
|
||||||
{{ .Values.seLinuxOptions.milter | toYaml | nindent 6 }}
|
{{ .Values.seLinuxOptions.milter | toYaml | nindent 6 }}
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.milter.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.milter.registry | quote }}
|
||||||
repository: {{ .Values.images.milter.repository | quote }}
|
repository: {{ .Values.images.milter.repository | quote }}
|
||||||
tag: {{ .Values.images.milter.tag | quote }}
|
tag: {{ .Values.images.milter.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -23,12 +26,12 @@ global:
|
|||||||
|
|
||||||
image:
|
image:
|
||||||
clamav:
|
clamav:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.clamd.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.clamd.registry | quote }}
|
||||||
repository: {{ .Values.images.clamd.repository | quote }}
|
repository: {{ .Values.images.clamd.repository | quote }}
|
||||||
tag: {{ .Values.images.clamd.tag | quote }}
|
tag: {{ .Values.images.clamd.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
icap:
|
icap:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.icap.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.icap.registry | quote }}
|
||||||
repository: {{ .Values.images.icap.repository | quote }}
|
repository: {{ .Values.images.icap.repository | quote }}
|
||||||
tag: {{ .Values.images.icap.tag | quote }}
|
tag: {{ .Values.images.icap.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -47,4 +50,14 @@ replicaCount: {{ .Values.replicas.clamav }}
|
|||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.clamd | toYaml | nindent 4 }}
|
{{ .Values.resources.clamd | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
settings:
|
||||||
|
freshclam:
|
||||||
|
database:
|
||||||
|
auth:
|
||||||
|
{{ .Values.repositories.clamav.auth | toYaml | nindent 8 }}
|
||||||
|
mirror:
|
||||||
|
scheme: {{ .Values.repositories.clamav.mirror.scheme | quote }}
|
||||||
|
url: {{ .Values.repositories.clamav.mirror.url | quote }}
|
||||||
|
customURLs:
|
||||||
|
{{ .Values.repositories.clamav.customURLs | toYaml | nindent 8 }}
|
||||||
...
|
...
|
||||||
|
|||||||
47
helmfile/apps/services/values-dkimpy.yaml.gotmpl
Normal file
47
helmfile/apps/services/values-dkimpy.yaml.gotmpl
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{{/*
|
||||||
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
|
---
|
||||||
|
containerSecurityContext:
|
||||||
|
allowPrivilegeEscalation: true
|
||||||
|
capabilities: {}
|
||||||
|
enabled: true
|
||||||
|
seccompProfile:
|
||||||
|
type: "RuntimeDefault"
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1000
|
||||||
|
runAsGroup: 1000
|
||||||
|
privileged: false
|
||||||
|
seLinuxOptions:
|
||||||
|
{{ .Values.seLinuxOptions.dkimpy | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
global:
|
||||||
|
imagePullSecrets:
|
||||||
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
image:
|
||||||
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.dkimpy.registry | quote }}
|
||||||
|
repository: {{ .Values.images.dkimpy.repository | quote }}
|
||||||
|
tag: {{ .Values.images.dkimpy.tag | quote }}
|
||||||
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|
||||||
|
podSecurityContext:
|
||||||
|
enabled: true
|
||||||
|
fsGroup: 1000
|
||||||
|
|
||||||
|
configuration:
|
||||||
|
domain: "{{ .Values.global.domain }}{{ if .Values.global.mailDomain }}, {{ .Values.global.mailDomain }}{{ end }}"
|
||||||
|
key:
|
||||||
|
{{ .Values.smtp.dkim.key | toYaml | nindent 4 }}
|
||||||
|
mode: "s"
|
||||||
|
selector: {{ .Values.smtp.dkim.selector }}
|
||||||
|
useED25519: {{ .Values.smtp.dkim.useED25519 }}
|
||||||
|
|
||||||
|
replicaCount: {{ .Values.replicas.dkimpy }}
|
||||||
|
|
||||||
|
resources:
|
||||||
|
{{ .Values.resources.dkimpy | toYaml | nindent 2 }}
|
||||||
|
...
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
cleanup:
|
cleanup:
|
||||||
deletePodsOnSuccess: {{ .Values.cleanup.deletePodsOnSuccess }}
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
|
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
|
||||||
|
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
@@ -25,7 +29,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.mariadb.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.mariadb.registry | quote }}
|
||||||
repository: {{ .Values.images.mariadb.repository | quote }}
|
repository: {{ .Values.images.mariadb.repository | quote }}
|
||||||
tag: {{ .Values.images.mariadb.tag | quote }}
|
tag: {{ .Values.images.mariadb.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -35,19 +39,32 @@ job:
|
|||||||
retries: 10
|
retries: 10
|
||||||
wait: 30
|
wait: 30
|
||||||
users:
|
users:
|
||||||
- username: "xwiki_user"
|
- username: {{ .Values.databases.nextcloud.username | quote }}
|
||||||
password: {{ .Values.secrets.mariadb.xwikiUser | quote }}
|
|
||||||
- username: "openxchange_user"
|
|
||||||
password: {{ .Values.secrets.mariadb.openxchangeUser | quote }}
|
|
||||||
- username: "nextcloud_user"
|
|
||||||
password: {{ .Values.secrets.mariadb.nextcloudUser | quote}}
|
password: {{ .Values.secrets.mariadb.nextcloudUser | quote}}
|
||||||
|
connectionLimit: {{ .Values.databases.nextcloud.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
|
# OX and XWiki are using the db's `root` users (see `database.yaml`). So we are statically referencing their dedicated
|
||||||
|
# users for the moment.
|
||||||
|
- username: "openxchange_user"
|
||||||
|
# - username: {{ .Values.databases.xwiki.username | quote }}
|
||||||
|
password: {{ .Values.secrets.mariadb.openxchangeUser | quote }}
|
||||||
|
connectionLimit: {{ .Values.databases.oxAppsuite.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
|
- username: "xwiki_user"
|
||||||
|
# - username: {{ .Values.databases.oxAppsuite.username | quote }}
|
||||||
|
password: {{ .Values.secrets.mariadb.xwikiUser | quote }}
|
||||||
|
connectionLimit: {{ .Values.databases.xwiki.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
databases:
|
databases:
|
||||||
- name: "xwiki"
|
- name: {{ .Values.databases.nextcloud.name | quote }}
|
||||||
user: "xwiki_user"
|
user: {{ .Values.databases.nextcloud.username | quote }}
|
||||||
- name: "nextcloud"
|
# OX and XWiki are using the db's `root` users (see `database.yaml`). So we are statically referencing their dedicated
|
||||||
user: "nextcloud_user"
|
# users for the moment.
|
||||||
- name: "openxchange"
|
- name: "openxchange"
|
||||||
user: "openxchange_user"
|
user: "openxchange_user"
|
||||||
|
# - name: {{ .Values.databases.oxAppsuite.name | quote }}
|
||||||
|
# user: {{ .Values.databases.oxAppsuite.username | quote }}
|
||||||
|
- name: "xwiki"
|
||||||
|
user: "xwiki_user"
|
||||||
|
# - name: {{ .Values.databases.xwiki.name | quote }}
|
||||||
|
# user: {{ .Values.databases.xwiki.username | quote }}
|
||||||
|
|
||||||
mariadb:
|
mariadb:
|
||||||
rootPassword: {{ .Values.secrets.mariadb.rootPassword | quote }}
|
rootPassword: {{ .Values.secrets.mariadb.rootPassword | quote }}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
architecture: {{ if gt .Values.replicas.memcached 1 }}"high-availability"{{ else }}"standalone"{{ end }}
|
architecture: {{ if gt .Values.replicas.memcached 1 }}"high-availability"{{ else }}"standalone"{{ end }}
|
||||||
|
|
||||||
@@ -24,7 +27,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.memcached.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.memcached.registry | quote }}
|
||||||
repository: {{ .Values.images.memcached.repository | quote }}
|
repository: {{ .Values.images.memcached.repository | quote }}
|
||||||
tag: {{ .Values.images.memcached.tag | quote }}
|
tag: {{ .Values.images.memcached.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
apiIngress:
|
apiIngress:
|
||||||
enabled: {{ .Values.ingress.enabled }}
|
enabled: {{ .Values.ingress.enabled }}
|
||||||
@@ -39,7 +42,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.minio.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.minio.registry | quote }}
|
||||||
repository: "{{ .Values.images.minio.repository }}"
|
repository: "{{ .Values.images.minio.repository }}"
|
||||||
tag: "{{ .Values.images.minio.tag }}"
|
tag: "{{ .Values.images.minio.tag }}"
|
||||||
pullPolicy: "{{ .Values.global.imagePullPolicy }}"
|
pullPolicy: "{{ .Values.global.imagePullPolicy }}"
|
||||||
@@ -67,9 +70,9 @@ mode: {{ if gt .Values.replicas.minio 1 }}"distributed"{{ else }}"standalone"{{
|
|||||||
|
|
||||||
metrics:
|
metrics:
|
||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: {{ .Values.prometheus.serviceMonitors.enabled }}
|
enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }}
|
||||||
additionalLabels:
|
additionalLabels:
|
||||||
{{ .Values.prometheus.serviceMonitors.labels | toYaml | nindent 6 }}
|
{{ .Values.monitoring.prometheus.serviceMonitors.labels | toYaml | nindent 6 }}
|
||||||
|
|
||||||
networkPolicy:
|
networkPolicy:
|
||||||
enabled: false
|
enabled: false
|
||||||
@@ -85,20 +88,48 @@ persistence:
|
|||||||
provisioning:
|
provisioning:
|
||||||
enabled: true
|
enabled: true
|
||||||
cleanupAfterFinished:
|
cleanupAfterFinished:
|
||||||
enabled: true
|
enabled: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
|
seconds: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
|
||||||
extraCommands:
|
extraCommands:
|
||||||
- "mc anonymous set download provisioning/ums/portal-assets"
|
- "mc anonymous set download provisioning/ums/portal-assets"
|
||||||
buckets:
|
buckets:
|
||||||
- name: {{ .Values.objectstores.openproject.bucket | quote }}
|
- name: {{ .Values.objectstores.migrations.bucket | quote }}
|
||||||
versioning: true
|
|
||||||
withLock: false
|
|
||||||
- name: {{ .Values.objectstores.univentionManagementStack.bucket | quote }}
|
|
||||||
versioning: false
|
versioning: false
|
||||||
withLock: false
|
withLock: false
|
||||||
- name: {{ .Values.objectstores.nextcloud.bucket | quote }}
|
- name: {{ .Values.objectstores.nextcloud.bucket | quote }}
|
||||||
versioning: true
|
versioning: true
|
||||||
withLock: false
|
withLock: false
|
||||||
|
- name: {{ .Values.objectstores.openproject.bucket | quote }}
|
||||||
|
versioning: true
|
||||||
|
withLock: false
|
||||||
|
- name: {{ .Values.objectstores.nubus.bucket | quote }}
|
||||||
|
versioning: false
|
||||||
|
withLock: false
|
||||||
policies:
|
policies:
|
||||||
|
- name: "migrations-bucket-policy"
|
||||||
|
statements:
|
||||||
|
- resources:
|
||||||
|
- "arn:aws:s3:::migrations"
|
||||||
|
effect: "Allow"
|
||||||
|
actions:
|
||||||
|
- "s3:*"
|
||||||
|
- resources:
|
||||||
|
- "arn:aws:s3:::migrations/*"
|
||||||
|
effect: "Allow"
|
||||||
|
actions:
|
||||||
|
- "s3:*"
|
||||||
|
- name: "nextcloud-bucket-policy"
|
||||||
|
statements:
|
||||||
|
- resources:
|
||||||
|
- "arn:aws:s3:::nextcloud"
|
||||||
|
effect: "Allow"
|
||||||
|
actions:
|
||||||
|
- "s3:*"
|
||||||
|
- resources:
|
||||||
|
- "arn:aws:s3:::nextcloud/*"
|
||||||
|
effect: "Allow"
|
||||||
|
actions:
|
||||||
|
- "s3:*"
|
||||||
- name: "openproject-bucket-policy"
|
- name: "openproject-bucket-policy"
|
||||||
statements:
|
statements:
|
||||||
- resources:
|
- resources:
|
||||||
@@ -123,30 +154,12 @@ provisioning:
|
|||||||
effect: "Allow"
|
effect: "Allow"
|
||||||
actions:
|
actions:
|
||||||
- "s3:*"
|
- "s3:*"
|
||||||
- name: "nextcloud-bucket-policy"
|
|
||||||
statements:
|
|
||||||
- resources:
|
|
||||||
- "arn:aws:s3:::nextcloud"
|
|
||||||
effect: "Allow"
|
|
||||||
actions:
|
|
||||||
- "s3:*"
|
|
||||||
- resources:
|
|
||||||
- "arn:aws:s3:::nextcloud/*"
|
|
||||||
effect: "Allow"
|
|
||||||
actions:
|
|
||||||
- "s3:*"
|
|
||||||
users:
|
users:
|
||||||
- username: {{ .Values.objectstores.openproject.username | quote }}
|
- username: {{ .Values.objectstores.migrations.username | quote }}
|
||||||
password: {{ .Values.secrets.minio.openprojectUser | quote }}
|
password: {{ .Values.secrets.minio.migrationsUser | quote }}
|
||||||
disabled: false
|
disabled: false
|
||||||
policies:
|
policies:
|
||||||
- "openproject-bucket-policy"
|
- "migrations-bucket-policy"
|
||||||
setPolicies: true
|
|
||||||
- username: {{ .Values.objectstores.univentionManagementStack.username | quote }}
|
|
||||||
password: {{ .Values.secrets.minio.umsUser | quote }}
|
|
||||||
disabled: false
|
|
||||||
policies:
|
|
||||||
- "ums-bucket-policy"
|
|
||||||
setPolicies: true
|
setPolicies: true
|
||||||
- username: {{ .Values.objectstores.nextcloud.username | quote }}
|
- username: {{ .Values.objectstores.nextcloud.username | quote }}
|
||||||
password: {{ .Values.secrets.minio.nextcloudUser | quote }}
|
password: {{ .Values.secrets.minio.nextcloudUser | quote }}
|
||||||
@@ -154,6 +167,18 @@ provisioning:
|
|||||||
policies:
|
policies:
|
||||||
- "nextcloud-bucket-policy"
|
- "nextcloud-bucket-policy"
|
||||||
setPolicies: true
|
setPolicies: true
|
||||||
|
- username: {{ .Values.objectstores.openproject.username | quote }}
|
||||||
|
password: {{ .Values.secrets.minio.openprojectUser | quote }}
|
||||||
|
disabled: false
|
||||||
|
policies:
|
||||||
|
- "openproject-bucket-policy"
|
||||||
|
setPolicies: true
|
||||||
|
- username: {{ .Values.objectstores.nubus.username | quote }}
|
||||||
|
password: {{ .Values.secrets.minio.umsUser | quote }}
|
||||||
|
disabled: false
|
||||||
|
policies:
|
||||||
|
- "ums-bucket-policy"
|
||||||
|
setPolicies: true
|
||||||
resources:
|
resources:
|
||||||
{{ .Values.resources.minio | toYaml | nindent 4 }}
|
{{ .Values.resources.minio | toYaml | nindent 4 }}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ apps:
|
|||||||
redis:
|
redis:
|
||||||
enabled: {{ .Values.redis.enabled }}
|
enabled: {{ .Values.redis.enabled }}
|
||||||
univentionManagementStack:
|
univentionManagementStack:
|
||||||
enabled: {{ .Values.univentionManagementStack.enabled }}
|
enabled: {{ .Values.nubus.enabled }}
|
||||||
xwiki:
|
xwiki:
|
||||||
enabled: {{ .Values.xwiki.enabled }}
|
enabled: {{ .Values.xwiki.enabled }}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
certificate:
|
certificate:
|
||||||
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
secretName: {{ .Values.ingress.tls.secretName | quote }}
|
||||||
@@ -25,7 +28,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.postfix.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.postfix.registry | quote }}
|
||||||
repository: {{ .Values.images.postfix.repository | quote }}
|
repository: {{ .Values.images.postfix.repository | quote }}
|
||||||
tag: {{ .Values.images.postfix.tag | quote }}
|
tag: {{ .Values.images.postfix.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -41,7 +44,7 @@ podSecurityContext:
|
|||||||
postfix:
|
postfix:
|
||||||
amavisHost: ""
|
amavisHost: ""
|
||||||
amavisPortIn: ""
|
amavisPortIn: ""
|
||||||
domain: {{ .Values.global.mailDomain | default .Values.global.domain }}
|
domain: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
|
||||||
hostname: "postfix"
|
hostname: "postfix"
|
||||||
inetProtocols: "ipv4"
|
inetProtocols: "ipv4"
|
||||||
milterDefaultAction: "accept"
|
milterDefaultAction: "accept"
|
||||||
@@ -49,9 +52,12 @@ postfix:
|
|||||||
- fileName: "sasl_passwd.map"
|
- fileName: "sasl_passwd.map"
|
||||||
content:
|
content:
|
||||||
- {{ printf "%s %s:%s" .Values.smtp.host .Values.smtp.username .Values.smtp.password | quote }}
|
- {{ printf "%s %s:%s" .Values.smtp.host .Values.smtp.username .Values.smtp.password | quote }}
|
||||||
|
{{- if .Values.dkimpy.enabled }}
|
||||||
|
dkimpyHost: "opendesk-dkimpy-milter.{{ .Release.Namespace }}.svc.{{.Values.cluster.networking.domain }}:8892"
|
||||||
|
{{- end }}
|
||||||
rspamdHost: ""
|
rspamdHost: ""
|
||||||
relayHost: {{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}
|
relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
|
||||||
relayNets: {{ .Values.cluster.networking.cidr | quote}}
|
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }}
|
||||||
smtpSASLAuthEnable: "yes"
|
smtpSASLAuthEnable: "yes"
|
||||||
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
|
smtpSASLPasswordMaps: "lmdb:/etc/postfix/sasl_passwd.map"
|
||||||
smtpUseTLS: "yes"
|
smtpUseTLS: "yes"
|
||||||
@@ -67,7 +73,7 @@ postfix:
|
|||||||
{{- else if .Values.clamavSimple.enabled }}
|
{{- else if .Values.clamavSimple.enabled }}
|
||||||
smtpdMilters: "inet:clamav-simple:7357"
|
smtpdMilters: "inet:clamav-simple:7357"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
virtualMailboxDomains: {{ .Values.global.mailDomain | default .Values.global.domain }}
|
virtualMailboxDomains: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
|
||||||
virtualTransport: "lmtps:dovecot:24"
|
virtualTransport: "lmtps:dovecot:24"
|
||||||
|
|
||||||
replicaCount: {{ .Values.replicas.postfix }}
|
replicaCount: {{ .Values.replicas.postfix }}
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
|
cleanup:
|
||||||
|
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
|
||||||
|
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
|
||||||
|
|
||||||
containerSecurityContext:
|
containerSecurityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -17,8 +24,6 @@ containerSecurityContext:
|
|||||||
seLinuxOptions:
|
seLinuxOptions:
|
||||||
{{ .Values.seLinuxOptions.postgresql | toYaml | nindent 4 }}
|
{{ .Values.seLinuxOptions.postgresql | toYaml | nindent 4 }}
|
||||||
|
|
||||||
job:
|
|
||||||
|
|
||||||
podSecurityContext:
|
podSecurityContext:
|
||||||
enabled: true
|
enabled: true
|
||||||
fsGroup: 1001
|
fsGroup: 1001
|
||||||
@@ -34,7 +39,7 @@ global:
|
|||||||
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.postgresql.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.postgresql.registry | quote }}
|
||||||
repository: {{ .Values.images.postgresql.repository | quote }}
|
repository: {{ .Values.images.postgresql.repository | quote }}
|
||||||
tag: {{ .Values.images.postgresql.tag | quote }}
|
tag: {{ .Values.images.postgresql.tag | quote }}
|
||||||
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
@@ -43,36 +48,43 @@ image:
|
|||||||
|
|
||||||
job:
|
job:
|
||||||
users:
|
users:
|
||||||
- username: "keycloak_user"
|
- username: {{ .Values.databases.keycloak.username | quote }}
|
||||||
password: {{ .Values.secrets.postgresql.keycloakUser | quote }}
|
password: {{ .Values.secrets.postgresql.keycloakUser | quote }}
|
||||||
- username: "openproject_user"
|
connectionLimit: {{ .Values.databases.keycloak.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
|
- username: {{ .Values.databases.openproject.username | quote }}
|
||||||
password: {{ .Values.secrets.postgresql.openprojectUser | quote }}
|
password: {{ .Values.secrets.postgresql.openprojectUser | quote }}
|
||||||
- username: "keycloak_extensions_user"
|
connectionLimit: {{ .Values.databases.openproject.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
|
- username: {{ .Values.databases.keycloakExtension.username | quote }}
|
||||||
password: {{ .Values.secrets.postgresql.keycloakExtensionUser | quote }}
|
password: {{ .Values.secrets.postgresql.keycloakExtensionUser | quote }}
|
||||||
- username: "matrix_user"
|
connectionLimit: {{ .Values.databases.keycloakExtension.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
|
- username: {{ .Values.databases.synapse.username | quote }}
|
||||||
password: {{ .Values.secrets.postgresql.matrixUser | quote }}
|
password: {{ .Values.secrets.postgresql.matrixUser | quote }}
|
||||||
- username: "notificationsapi_user"
|
connectionLimit: {{ .Values.databases.synapse.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
|
- username: {{ .Values.databases.umsNotificationsApi.username | quote }}
|
||||||
password: {{ .Values.secrets.postgresql.umsNotificationsApiUser | quote }}
|
password: {{ .Values.secrets.postgresql.umsNotificationsApiUser | quote }}
|
||||||
- username: "guardianmanagementapi_user"
|
connectionLimit: {{ .Values.databases.umsNotificationsApi.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
|
- username: {{ .Values.databases.umsGuardianManagementApi.username | quote }}
|
||||||
password: {{ .Values.secrets.postgresql.umsGuardianManagementApiUser | quote }}
|
password: {{ .Values.secrets.postgresql.umsGuardianManagementApiUser | quote }}
|
||||||
- username: "selfservice_user"
|
connectionLimit: {{ .Values.databases.umsGuardianManagementApi.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
|
- username: {{ .Values.databases.umsSelfservice.username | quote }}
|
||||||
password: {{ .Values.secrets.postgresql.umsSelfserviceUser | quote }}
|
password: {{ .Values.secrets.postgresql.umsSelfserviceUser | quote }}
|
||||||
|
connectionLimit: {{ .Values.databases.umsSelfservice.connectionLimit | default .Values.databases.defaults.userConnectionLimit }}
|
||||||
databases:
|
databases:
|
||||||
- name: "keycloak"
|
- name: {{ .Values.databases.keycloak.name | quote }}
|
||||||
user: "keycloak_user"
|
user: {{ .Values.databases.keycloak.username | quote }}
|
||||||
- name: "keycloak_extensions"
|
- name: {{ .Values.databases.keycloakExtension.name | quote }}
|
||||||
user: "keycloak_extensions_user"
|
user: {{ .Values.databases.keycloakExtension.username | quote }}
|
||||||
- name: "openproject"
|
- name: {{ .Values.databases.openproject.name | quote }}
|
||||||
user: "openproject_user"
|
user: {{ .Values.databases.openproject.username | quote }}
|
||||||
- name: "matrix"
|
- name: {{ .Values.databases.synapse.name | quote }}
|
||||||
user: "matrix_user"
|
user: {{ .Values.databases.synapse.username | quote }}
|
||||||
additionalParams: "ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0"
|
additionalParams: "ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0"
|
||||||
- name: "guardianmanagementapi"
|
- name: {{ .Values.databases.umsGuardianManagementApi.name | quote }}
|
||||||
user: "guardianmanagementapi_user"
|
user: {{ .Values.databases.umsGuardianManagementApi.username | quote }}
|
||||||
- name: "notificationsapi"
|
- name: {{ .Values.databases.umsNotificationsApi.name | quote }}
|
||||||
user: "notificationsapi_user"
|
user: {{ .Values.databases.umsNotificationsApi.username | quote }}
|
||||||
- name: "selfservice"
|
- name: {{ .Values.databases.umsSelfservice.name | quote }}
|
||||||
user: "selfservice_user"
|
user: {{ .Values.databases.umsSelfservice.username | quote }}
|
||||||
|
|
||||||
persistence:
|
persistence:
|
||||||
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
{{/*
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
||||||
|
SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
||||||
|
SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/}}
|
||||||
---
|
---
|
||||||
architecture: "standalone"
|
architecture: "standalone"
|
||||||
|
|
||||||
@@ -12,7 +15,7 @@ global:
|
|||||||
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
|
||||||
|
|
||||||
image:
|
image:
|
||||||
registry: {{ .Values.global.imageRegistry | default .Values.images.redis.registry | quote }}
|
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.redis.registry | quote }}
|
||||||
repository: {{ .Values.images.redis.repository | quote }}
|
repository: {{ .Values.images.redis.repository | quote }}
|
||||||
tag: {{ .Values.images.redis.tag | quote }}
|
tag: {{ .Values.images.redis.tag | quote }}
|
||||||
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
|
|
||||||
# SPDX-FileCopyrightText: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
|
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
|
||||||
---
|
|
||||||
bases:
|
|
||||||
- "../../bases/environments.yaml"
|
|
||||||
---
|
|
||||||
helmfiles:
|
|
||||||
- path: "./helmfile-child.yaml"
|
|
||||||
values:
|
|
||||||
- {{ toYaml .Values | nindent 8 }}
|
|
||||||
...
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user