Compare commits

...

81 Commits

Author SHA1 Message Date
Thorsten Roßner
6242b5067e fix: Bump migrations for release. 2024-10-13 13:41:15 +02:00
Thomas Kaltenbrunner
7aee88ec94 fix(nextcloud): Add support for secret keys for administrator and ldap credentials 2024-10-11 12:25:06 +00:00
Oliver Günther
cc4b359124 fix(openproject): Update to 14.6.1. 2024-10-11 13:35:29 +02:00
Norbert Tretkowski
fc7099a8a6 fix(nubus): Update to 0.64.2. 2024-10-10 18:25:21 +02:00
Thorsten Roßner
e3238f96f7 fix(nubus): Update LDAP openDesk schemas and add related openDesk config options to user. 2024-10-10 18:04:28 +02:00
Thorsten Roßner
a91f181c46 fix(xwiki): Disable check for local Office component. 2024-10-10 08:00:55 +00:00
Jaime Conde
a7e5f64b50 fix(intercom-service): Customizable user mapper. 2024-10-10 09:21:52 +02:00
Thorsten Roßner
e619db6da2 fix(nubus): Update opendesk-nubus to set default OXContext and improved OXProfile, update migrations to (optionally) ldap-patch OXContext for Administrator/default.admin as well as patch the OXProfile to 1.0 default state. 2024-10-10 06:40:21 +02:00
Norbert Tretkowski
28dd762db3 fix(nubus): Update to 0.63.2 2024-10-08 20:07:44 +00:00
Thorsten Roßner
6347966765 fix(xwiki): Update to 16.4.4 - updated. 2024-10-08 17:40:18 +00:00
Oliver Günther
560aa30cba fix(openproject): Update to 14.6.0. 2024-10-08 16:31:47 +00:00
Dominik Kaminski
3a9468f04d ci(gitlab): Check also for optional lint issues 2024-10-08 15:15:11 +00:00
Thorsten Roßner
b7faa24d76 fix(open-xchange): DisplayName settings for OX-Connector. 2024-10-08 15:08:00 +00:00
Dominik Kaminski
7bf8e6976a feat(helmfile): Full ArgoCD support 2024-10-08 15:09:31 +02:00
Thorsten Roßner
d641359c29 fix(helmfile): Remove some YAML linter warnings. 2024-10-07 13:56:13 +00:00
Thorsten Roßner
fdb37c3943 fix(nubus): Update "openDesk Standard" OX profile. 2024-10-07 13:56:13 +00:00
Thorsten Roßner
c9ae0391b0 fix(nextcloud): Bump image to incorporate latest PHP fixes. 2024-10-07 13:56:13 +00:00
Milton Moura
71f21dc433 fix(element): Update NeoDateFix translations. 2024-10-07 14:08:44 +02:00
Thorsten Roßner
356d8dfbfd feat(open-xchange): Support for email migration feature toggle enabling masterpassword authentication in Dovecot and AppSuite. Requires openDesk Enterprise. 2024-10-07 08:54:59 +02:00
Dominik Kaminski
e512486e74 fix(helmfile): Remove NET_RAW capabilities 2024-10-04 16:13:59 +00:00
Thorsten Roßner
d693ff94f4 fix(xwiki): Update to 16.4.4. 2024-10-04 12:38:14 +00:00
Milton Moura
11b0d441e0 fix(element): Update NeoBoard to 1.20.0 and synapse-guest-module to 2.0.0. 2024-10-04 11:40:17 +00:00
Dominik Kaminski
6b2ca6a136 chore(open-xchange): Fix linter warnings and add templates 2024-10-04 07:38:48 +00:00
Dominik Kaminski
fb8f7cd28a fix(open-xchange): Update OpenXchange Appsuite Bootstrap to v2.1.0 2024-10-04 07:38:48 +00:00
Thorsten Roßner
6325b69a91 fix(open-xchange): Update Migrations for OX-Connector. 2024-10-04 06:33:57 +00:00
Dominik Kaminski
add2ab1a41 fix(collabora): Add ipFamilies cluster.networking option 2024-10-03 18:59:10 +02:00
Thorsten Roßner
b1946d0c1d fix(open-xchange): Update cluster internal Nextcloud URL. 2024-10-03 10:03:39 +02:00
Thorsten Roßner
3baf37c509 fix(nextcloud): Remove /index.php. 2024-10-03 10:03:39 +02:00
Dominik Kaminski
81f5969653 feat(nextcloud): Use nextcloud image with bundled nginx 2024-10-03 10:03:31 +02:00
Thorsten Roßner
a7ea701cc6 fix(collabora): Reduce Collabora's securityContext capabilities. 2024-10-02 14:17:42 +00:00
Thorsten Roßner
b9db81f69d fix(nubus): Update customization for improved UX. 2024-10-02 10:39:57 +02:00
Thorsten Roßner
ef1dad7433 fix(helmfile): Move Intercom-Service to Nubus component. 2024-09-30 19:05:01 +02:00
Thorsten Roßner
751f5783d0 fix(helmfile): Move OX-Connector to Open-Xchange component. 2024-09-30 19:03:21 +02:00
Dominik Kaminski
13e0bb8d68 fix(helmfile): Check imagePullSecrets templates for all resources 2024-09-30 12:17:10 +02:00
openDesk Bot
8229949b47 fix(nubus): Update to Nubus 0.62.2. 2024-09-27 16:39:07 +00:00
openDesk Bot
dcb6e15e90 chore(renovate): Update Open-Xchange 2024-09-27 09:05:26 +00:00
Dominik Kaminski
a7d3d2585c fix(nubus): Remove superfluous variables 2024-09-27 08:55:02 +00:00
Dominik Kaminski
e923468cd6 fix(nubus): Reduce lint failures, especially take care of pullSecrets 2024-09-27 08:55:02 +00:00
Thorsten Roßner
4ff720d36f fix(element): Set Synapse rate limit. 2024-09-27 09:34:23 +02:00
Thorsten Roßner
fa8572f785 fix(xwiki): Enable IAM controlled functional admin role. 2024-09-26 18:31:27 +02:00
Dominik Kaminski
9eb854616c chore(nubus): Reduce nubus lint issues 2024-09-26 05:44:58 +00:00
Johannes Bornhold
6a60c6dd43 fix(nubus): Add interim ingress configuration fixing UMC in German 2024-09-26 05:11:49 +00:00
Johannes Bornhold
8cd2f3a993 fix(nubus): Remove duplicated "nubusPortalFrontend" 2024-09-26 05:11:49 +00:00
Luis Lürenbaum
9d7d89f74f fix(ci): Trigger e2e tests for multiple languages. 2024-09-25 21:23:00 +02:00
Dominik Kaminski
180ccddfaa feat(helmfile): Add customization.yaml to define custom files for helmfile releases 2024-09-25 11:43:39 +00:00
Thorsten Roßner
11f750e1d6 fix(nubus): Update to version 0.57.3. 2024-09-25 09:25:51 +02:00
Thorsten Roßner
91e34aabaa fix(openproject): Update Helm chart to v8.0.0 and explicitly template resources. 2024-09-25 09:18:28 +02:00
Oliver Günther
deacbc9db5 fix(openproject): Bump OpenProject to 14.5.1. 2024-09-24 18:27:24 +02:00
Thorsten Roßner
cbe6b1ae6c fix(ci): Remove K8s secret creation for EXTERNAL_REGISTRY_USERNAME / EXTERNAL_REGISTRY_PASSWORD. 2024-09-24 11:29:08 +00:00
Thorsten Roßner
67d52c771e fix(jitsi): Updated branding and new option functional.dataProtection.jitsiRoomHistory.enabled defaulting to false. 2024-09-24 11:15:50 +00:00
Luis Lürenbaum
1023f3d081 fix(ci): Add TESTS_GRACE_PERIOD variable for run-tests job. 2024-09-24 11:15:16 +02:00
Thorsten Roßner
12680e5c1a fix(element): Update Synapse to v0.1150. 2024-09-23 14:44:55 +00:00
Thorsten Roßner
592f03135f fix(helmfile): Switch fom dep5 to REUSE.toml. 2024-09-23 11:27:33 +02:00
Thorsten Roßner
bdc6ad2864 fix(element): Use Element upstream without widgets. 2024-09-19 12:12:55 +00:00
Dominik Kaminski
57f70b876a chore(helmfile): Add test environment to gitignore 2024-09-19 13:23:42 +02:00
Dominik Kaminski
e9f779049c ci(gitlab): Update to openDesk CLI v2.5.0 2024-09-19 13:22:06 +02:00
Dominik Kaminski
9f081d8567 feat(helmfile): Add support for argocd git-ops deployment 2024-09-18 23:30:33 +02:00
Thorsten Roßner
603b102f41 fix(ci): Re-enable e2e test trigger. 2024-09-18 15:59:35 +00:00
Thorsten Roßner
f297d8c0b7 fix(jitsi): Update chart for improved openDesk look & feel. 2024-09-18 09:22:04 +00:00
Thorsten Roßner
f4b9395b41 fix(helmfile): Update to support Helmfile 1.0.0-rc5. 2024-09-17 16:33:21 +02:00
Johannes Lohmer
31753ffb19 fix(nubus): Only use one LDAP Primary and make replica count of Secondary and Proxy others configurable 2024-09-16 17:15:25 +02:00
Johannes Bornhold
73455630fd feat(nubus): Update to Nubus 0.39.2 chart 2024-09-16 17:14:00 +02:00
openDesk Bot
5f72da4e57 fix(collabora): Update to 24.04.7.2. 2024-09-16 09:26:24 +02:00
Thorsten Roßner
dd80abe622 fix(helmfile): Add sample.yaml.gotmpl to dev and prod env directories. 2024-09-10 16:26:18 +02:00
Thorsten Roßner
9950b73ae3 fix(nextcloud): Update to 29.0.6 including latest app updates. 2024-09-05 07:43:56 +00:00
Thorsten Roßner
6b88f731eb fix(helmfile): Add new settings to functional.yaml for fileshare expiry dates. 2024-09-05 07:43:56 +00:00
openDesk Bot
11ebb80494 fix(collabora): Update to 24.04.7.1.2. 2024-09-05 07:43:56 +00:00
Milton Moura
ade8535c44 fix(element): Update 'capabilities_approved' for NeoBoard Widget
Signed-off-by: Milton Moura <miltonmoura@gmail.com>
2024-09-04 15:16:47 +00:00
Dominik Kaminski
3d84e804c2 feat(helmfile): Change default subdomain names. Attention, consult docs/migrations.md for upgrade deployments. 2024-09-03 12:30:58 +02:00
Thorsten Roßner
8bca56d4ac fix(jitsi): Improve handling of non authorized users. 2024-09-03 07:22:26 +02:00
Thorsten Roßner
df9380b924 fix(openproject): Remove OPENPROJECT_PER__PAGE__OPTIONS to enable functional administration of the setting. 2024-08-30 12:51:08 +02:00
Dominik Kaminski
7348547d96 feat(helmfile): Add fine-granular registry overwrites 2024-08-29 10:43:55 +00:00
Thomas Kaltenbrunner
8ef69ecaf2 fix(helmfile): Update replicas.yaml. 2024-08-28 15:45:07 +00:00
Oliver Günther
fa04f88370 chore(openproject): Bump version to 14.4.1 2024-08-28 13:57:09 +02:00
Thorsten Roßner
efc41cb3aa fix(element): Feature toggle for user controlled updates of their Element display name; new default for generating MatrixID, check docs/migrations.md for details. 2024-08-28 08:08:01 +02:00
Thorsten Roßner
370c7cd836 fix(collabora): Set Nextcloud URL for custom font support. 2024-08-23 09:53:56 +02:00
Thorsten Roßner
ac148d0c28 fix(nextcloud): Update to 29.0.5 and support for new functional settings regarding sharing of files. See the options related to functional.filestore.sharing in functional.yaml and also migrations.md regarding their defaults that differ from the previous standard behaviour of openDesk. 2024-08-22 13:04:20 +00:00
openDesk Bot
3d441933ca fix(collabora): Update to 24.04.6.2.1. 2024-08-22 09:08:02 +02:00
Thorsten Roßner
b60fe39b5c fix(helmfile): Remove toggle functional.email.systemGenerated.useComponentInSenderdomain. Mails will no longer use a component subdomain in their sender address. 2024-08-20 17:25:07 +02:00
Thorsten Roßner
c03566dd63 fix(services): Support application based connection limits and password updates for PostgreSQL and MariaDB. 2024-08-20 15:12:35 +00:00
openDesk Bot
fbe4909a8e feat(services): [bmi/opendesk/deployment/opendesk#66] Add dkimpy-milter to sign outgoing emails with DKIM and use local postfix as mail relay in all components. 2024-08-20 16:13:03 +02:00
151 changed files with 2769 additions and 1346 deletions

4
.gitignore vendored
View File

@@ -6,7 +6,11 @@
# Ignore changes to sample environments # Ignore changes to sample environments
helmfile/environments/dev/*.yaml.gotmpl helmfile/environments/dev/*.yaml.gotmpl
helmfile/environments/test/*.yaml.gotmpl
helmfile/environments/prod/*.yaml.gotmpl helmfile/environments/prod/*.yaml.gotmpl
!helmfile/environments/dev/sample.yaml.gotmpl
!helmfile/environments/test/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

View File

@@ -4,7 +4,7 @@
--- ---
include: include:
- project: "${PROJECT_PATH_GITLAB_CONFIG_TOOLING}" - project: "${PROJECT_PATH_GITLAB_CONFIG_TOOLING}"
ref: "v2.3.3" ref: "v2.4.2"
file: file:
- "ci/common/automr.yml" - "ci/common/automr.yml"
- "ci/common/lint.yml" - "ci/common/lint.yml"
@@ -97,12 +97,6 @@ variables:
options: options:
- "yes" - "yes"
- "no" - "no"
DEPLOY_PROVISIONING:
description: "Enable Provisioning Components."
value: "no"
options:
- "yes"
- "no"
DEPLOY_COLLABORA: DEPLOY_COLLABORA:
description: "Enable Collabora deployment." description: "Enable Collabora deployment."
value: "no" value: "no"
@@ -127,12 +121,6 @@ variables:
options: options:
- "yes" - "yes"
- "no" - "no"
DEPLOY_ICS:
description: "Enable ICS deployment."
value: "no"
options:
- "yes"
- "no"
DEPLOY_XWIKI: DEPLOY_XWIKI:
description: "Enable XWiki deployment." description: "Enable XWiki deployment."
value: "no" value: "no"
@@ -159,7 +147,7 @@ variables:
- "no" - "no"
RUN_TESTS: RUN_TESTS:
description: "Triggers execution of E2E-tests." description: "Triggers execution of E2E-tests."
value: "yes" value: "no"
options: options:
- "yes" - "yes"
- "no" - "no"
@@ -171,14 +159,26 @@ variables:
- "no" - "no"
TESTS_BRANCH: TESTS_BRANCH:
description: "Branch of E2E-tests on which the test pipeline is triggered" description: "Branch of E2E-tests on which the test pipeline is triggered"
value: "main" value: "develop"
TESTS_PROJECT_URL:
description: "Project url for e2e-tests (`<domain of gitlab>/api/v4/projects/<id>`)"
value: "gitlab.opencode.de/api/v4/projects/1506"
TESTS_TESTSET:
description: "Selects testset for E2E-tests"
value: "Smoke"
options:
- "Regression"
- "Smoke"
TESTS_GRACE_PERIOD:
description: "A new deployment sometimes needs a few minutes to sort itself. If tested too early tests may fail. GRACE_PERIOD is the period in seconds that should be waited before running the tests."
value: "0"
.deploy-common: .deploy-common:
cache: {} cache: {}
dependencies: [] dependencies: []
extends: ".environments" extends: ".environments"
image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:1.0.1\ image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:1.1.0\
@sha256:d38f41b88374e055332860018f2936db8807b763caf6089735db0484cbb2842a" @sha256:74f349066ac5d20e3afaa6abd28781b4c8dc086f67e3d3c1b8345e4a9c3371b1"
script: script:
- "cd ${CI_PROJECT_DIR}/helmfile/apps/${COMPONENT}" - "cd ${CI_PROJECT_DIR}/helmfile/apps/${COMPONENT}"
# MASTER_PASSWORD_WEB_VAR as precedence for MASTER_PASSWORD # MASTER_PASSWORD_WEB_VAR as precedence for MASTER_PASSWORD
@@ -236,14 +236,6 @@ env-start:
script: script:
- "echo \"Deploying to Environment ${NAMESPACE} in ${CLUSTER} Cluster\"" - "echo \"Deploying to Environment ${NAMESPACE} in ${CLUSTER} Cluster\""
- "kubectl create namespace ${NAMESPACE} --dry-run=client -o yaml | kubectl apply -f -" - "kubectl create namespace ${NAMESPACE} --dry-run=client -o yaml | kubectl apply -f -"
- >
kubectl create secret
--namespace "${NAMESPACE}"
docker-registry external-registry
--docker-server "${EXTERNAL_REGISTRY}"
--docker-username "${EXTERNAL_REGISTRY_USERNAME}"
--docker-password "${EXTERNAL_REGISTRY_PASSWORD}"
--dry-run=client -o yaml | kubectl apply -f -
stage: "env" stage: "env"
policies-deploy: policies-deploy:
@@ -295,19 +287,7 @@ services-deploy:
variables: variables:
COMPONENT: "services" COMPONENT: "services"
provisioning-deploy: nubus-deploy:
stage: "component-deploy-stage-2"
extends: ".deploy-common"
rules:
- if: >
$CI_PIPELINE_SOURCE =~ "web|schedules|trigger|api" &&
$NAMESPACE =~ /.+/ &&
($DEPLOY_ALL_COMPONENTS != "no" || $DEPLOY_UMS != "no" || $DEPLOY_PROVISIONING != "no")
when: "on_success"
variables:
COMPONENT: "provisioning"
ums-deploy:
stage: "component-deploy-stage-1" stage: "component-deploy-stage-1"
extends: ".deploy-common" extends: ".deploy-common"
rules: rules:
@@ -332,18 +312,6 @@ ox-deploy:
variables: variables:
COMPONENT: "open-xchange" COMPONENT: "open-xchange"
ics-deploy:
stage: "component-deploy-stage-1"
extends: ".deploy-common"
rules:
- if: >
$CI_PIPELINE_SOURCE =~ "web|schedules|trigger|api" &&
$NAMESPACE =~ /.+/ &&
($DEPLOY_ALL_COMPONENTS != "no" || $DEPLOY_ICS != "no")
when: "on_success"
variables:
COMPONENT: "intercom-service"
xwiki-deploy: xwiki-deploy:
stage: "component-deploy-stage-1" stage: "component-deploy-stage-1"
extends: ".deploy-common" extends: ".deploy-common"
@@ -461,15 +429,11 @@ env-stop:
.ums-default-password: &ums-default-password .ums-default-password: &ums-default-password
- | - |
UMS_PASSWORDS=$( \ DEFAULT_ADMINISTRATOR_PASSWORD=$(
kubectl -n ${NAMESPACE} get cm ums-stack-data-swp-data -o jsonpath='{.data.dev-test-users\.yaml}' \ kubectl \
| yq '.properties.password' > passwords.txt \ -n ${NAMESPACE} \
) get secret ums-nubus-credentials \
DEFAULT_USER_PASSWORD=$( \ -o jsonpath='{.data.administrator_password}' | base64 -d \
awk 'NR==1{print $1}' passwords.txt \
)
DEFAULT_ADMIN_PASSWORD=$(
awk 'NR==3{print $1}' passwords.txt \
) )
run-tests: run-tests:
@@ -481,6 +445,11 @@ run-tests:
- if: > - if: >
$CI_PIPELINE_SOURCE =~ "web|schedules|trigger|api" && $NAMESPACE =~ /.+/ && $RUN_TESTS == "yes" $CI_PIPELINE_SOURCE =~ "web|schedules|trigger|api" && $NAMESPACE =~ /.+/ && $RUN_TESTS == "yes"
when: "on_success" when: "on_success"
parallel:
matrix:
- LANGUAGE:
- "de"
- "en"
script: script:
- *ums-default-password - *ums-default-password
- | - |
@@ -490,27 +459,27 @@ run-tests:
\"ref\": \"${TESTS_BRANCH}\", \ \"ref\": \"${TESTS_BRANCH}\", \
\"token\": \"${CI_JOB_TOKEN}\", \ \"token\": \"${CI_JOB_TOKEN}\", \
\"variables\": { \ \"variables\": { \
\"url\": \"https://portal.${DOMAIN}\", \ \"operator\": \"${OPERATOR}\", \
\"user_name\": \"${DEFAULT_USER_NAME}\", \ \"cluster\": \"${CLUSTER}\", \
\"user_password\": \"${DEFAULT_USER_PASSWORD}\", \ \"namespace\": \"${NAMESPACE}\", \
\"admin_name\": \"${DEFAULT_ADMIN_NAME}\", \ \"url\": \"https://portal.${DOMAIN}/\", \
\"admin_password\": \"${DEFAULT_ADMIN_PASSWORD}\", \ \"language\": \"${LANGUAGE}\", \
\"DEPLOY_ALL_COMPONENTS\": \"${DEPLOY_ALL_COMPONENTS}\", \ \"udm_api_username\": \"Administrator\", \
\"DEPLOY_COLLABORA\": \"${DEPLOY_COLLABORA}\", \ \"udm_api_password\": \"${DEFAULT_ADMINISTRATOR_PASSWORD}\", \
\"DEPLOY_ELEMENT\": \"${DEPLOY_ELEMENT}\", \ \"screenshot_test\": \"yes\", \
\"DEPLOY_ICS\": \"${DEPLOY_ICS}\", \ \"screenshot_before_step\": \"yes\", \
\"DEPLOY_JITSI\": \"${DEPLOY_JITSI}\", \ \"screenshot_after_step\": \"yes\", \
\"DEPLOY_KEYCLOAK\": \"${DEPLOY_UMS}\", \ \"screenshot_redirect_step\": \"yes\", \
\"DEPLOY_NEXTCLOUD\": \"${DEPLOY_NEXTCLOUD}\", \ \"testset\": \"${TESTS_TESTSET}\", \
\"DEPLOY_OPENPROJECT\": \"${DEPLOY_OPENPROJECT}\", \ \"testprofile\": \"Namespace\", \
\"DEPLOY_OX\": \"${DEPLOY_OX}\", \ \"gitlab_functional_yaml\": \"https://gitlab.opencode.de/api/v4/projects/1317/repository/files/helmfile%2Fenvironments%2Fdefault%2Ffunctional.yaml?ref=develop\", \
\"DEPLOY_SERVICES\": \"${DEPLOY_SERVICES}\", \ \"gitlab_env_namespace_template\": \"https://gitlab.opencode.de/api/v4/projects/1564/repository/files/environments%2F{operator}%2F{cluster}%2F{namespace}.yaml.gotmpl?ref=main\", \
\"DEPLOY_UCS\": \"${DEPLOY_UMS}\", \ \"gitlab_default_env_namespace\": \"values\", \
\"DEPLOY_XWIKI\": \"${DEPLOY_XWIKI}\", \ \"GRACE_PERIOD\": \"${TESTS_GRACE_PERIOD}\" \
\"DEPLOY_PROVISIONING\": \"${DEPLOY_PROVISIONING}\" \
} \ } \
}" \ }" \
"https://${TESTS_PROJECT_URL}/trigger/pipeline" "https://${TESTS_PROJECT_URL}/trigger/pipeline"
retry: 1
avscan-prepare: avscan-prepare:
stage: ".pre" stage: ".pre"
@@ -687,5 +656,4 @@ renovate:
script: script:
- "renovate ${RENOVATE_EXTRA_FLAGS}" - "renovate ${RENOVATE_EXTRA_FLAGS}"
stage: "renovate" stage: "renovate"
... ...

View File

@@ -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.4\ OPENDESK_CI_CLI_IMAGE: "registry.opencode.de/bmi/opendesk/tooling/opendesk-ci-cli:2.5.0\
@sha256:4120fe717071876f4c9ff128f26019d089fda158a4fb1912911e09af2fd3875f" @sha256:630e102edc70c9e730a46180e79ff278fd8b5039eb336110e0df89fe415225ef"
OPENDESK_LINT_IMAGE: "registry.opencode.de/bmi/opendesk/components/platform-development/images/ci-lint:1.0.5\ OPENDESK_LINT_IMAGE: "registry.opencode.de/bmi/opendesk/components/platform-development/images/ci-lint:1.0.6\
@sha256:60870adb64b0503d4a6efd16cef4e074b91a4ca52b48811cfcea057bcccd07e4" @sha256:0a8997876a0c3f5a3c73eb6bd75c5cde63757bc31b983bfd92cfcb17389d536f"
.common: .common:
cache: {} cache: {}

View File

@@ -14,19 +14,32 @@ lint-kyverno:
- "collabora" - "collabora"
- "cryptpad" - "cryptpad"
- "element" - "element"
- "intercom-service"
- "jitsi" - "jitsi"
- "nextcloud" - "nextcloud"
- "nubus" - "nubus"
- "open-xchange" - "open-xchange"
- "openproject" - "openproject"
- "openproject-bootstrap" - "openproject-bootstrap"
- "provisioning"
- "services" - "services"
- "xwiki" - "xwiki"
script: script:
- "cd ${CI_PROJECT_DIR}/helmfile/apps/${APP}" - "cd ${CI_PROJECT_DIR}/helmfile/apps/${APP}"
- "helmfile template -e test --include-needs > ${CI_PROJECT_DIR}/.kyverno/opendesk.yaml" - >
node /app/opendesk-ci-cli/src/index.js generate-kyverno-env
-d ${CI_PROJECT_DIR}/helmfile/environments
- "helmfile template -e test --include-needs --skip-tests > ${CI_PROJECT_DIR}/.kyverno/opendesk.yaml"
- "cd ${CI_PROJECT_DIR}/.kyverno"
# Test optional
- >
node /app/opendesk-ci-cli/src/index.js generate-kyverno-tests
-d ${CI_PROJECT_DIR}/.kyverno
-t optional
-s manifest
-f opendesk.yaml
--skip-tests true
${APP}
- "kyverno test . || true"
# Test required
- > - >
node /app/opendesk-ci-cli/src/index.js generate-kyverno-tests node /app/opendesk-ci-cli/src/index.js generate-kyverno-tests
-d ${CI_PROJECT_DIR}/.kyverno -d ${CI_PROJECT_DIR}/.kyverno
@@ -35,8 +48,5 @@ lint-kyverno:
-f opendesk.yaml -f opendesk.yaml
--skip-tests true --skip-tests true
${APP} ${APP}
- "node /app/opendesk-ci-cli/src/index.js filter-for-kinds -f ${CI_PROJECT_DIR}/.kyverno/opendesk.yaml"
- "cd ${CI_PROJECT_DIR}/.kyverno"
- "kyverno test ." - "kyverno test ."
... ...

View File

@@ -13,7 +13,7 @@ pod:
- "DaemonSet" - "DaemonSet"
- name: "disallow-default-serviceaccount" - name: "disallow-default-serviceaccount"
rule: "disallow-default-serviceAccountName" rule: "disallow-default-serviceAccountName"
type: "required" type: "optional"
kinds: kinds:
- "StatefulSet" - "StatefulSet"
- "Deployment" - "Deployment"
@@ -58,7 +58,7 @@ pod:
- "DaemonSet" - "DaemonSet"
- name: "require-health-and-liveness-check" - name: "require-health-and-liveness-check"
rule: "require-health-and-liveness-check" rule: "require-health-and-liveness-check"
type: "required" type: "optional"
kinds: kinds:
- "StatefulSet" - "StatefulSet"
- "Deployment" - "Deployment"
@@ -158,7 +158,7 @@ pod:
- "DaemonSet" - "DaemonSet"
- name: "require-containersecuritycontext" - name: "require-containersecuritycontext"
rule: "require-seccomp-profile" rule: "require-seccomp-profile"
type: "required" type: "optional"
kinds: kinds:
- "StatefulSet" - "StatefulSet"
- "Deployment" - "Deployment"
@@ -176,7 +176,7 @@ pod:
- "DaemonSet" - "DaemonSet"
- name: "require-containersecuritycontext" - name: "require-containersecuritycontext"
rule: "require-empty-seLinuxOptions" rule: "require-empty-seLinuxOptions"
type: "required" type: "optional"
kinds: kinds:
- "StatefulSet" - "StatefulSet"
- "Deployment" - "Deployment"
@@ -285,7 +285,7 @@ pod:
- "Ingress" - "Ingress"
- name: "template-replicas" - name: "template-replicas"
rule: "template-replicas" rule: "template-replicas"
type: "required" type: "optional"
kinds: kinds:
- "StatefulSet" - "StatefulSet"
- "Deployment" - "Deployment"

View File

@@ -27,6 +27,20 @@ spec:
message: "CPU and memory resource requests and limits are required." message: "CPU and memory resource requests and limits are required."
pattern: pattern:
spec: spec:
=(ephemeralContainers):
- resources:
limits:
memory: "?*"
requests:
cpu: "?*"
memory: "?*"
=(initContainers):
- resources:
limits:
memory: "?*"
requests:
cpu: "?*"
memory: "?*"
containers: containers:
- resources: - resources:
limits: limits:

View File

@@ -1,16 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: openDesk - der Souveräne Arbeitsplatz
Upstream-Contact: <opendesk@zendis.de>
Source: https://gitlab.opencode.de/bmi/opendesk/deployment/opendesk
Files: helmfile/files/theme/*
Copyright: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
License: Apache-2.0
Files: helmfile/files/gpg-pubkeys/*
Copyright: 2023 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
License: CC0-1.0
Files: cspell.json
Copyright: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
License: Apache-2.0

View File

@@ -32,13 +32,13 @@ openDesk currently features the following functional main components:
| -------------------- | --------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------- | --------------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| 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 | [29.0.7](https://nextcloud.com/de/changelog/#29-0-7) | [SNextcloud 29](https://docs.nextcloud.com/) |
| Groupware | OX App Suite | [8.26](https://documentation.open-xchange.com/appsuite/releases/8.26/) | Online documentation available from within the installed application; [Additional resources](https://www.open-xchange.com/resources/oxpedia) | | Groupware | OX App Suite | [8.26](https://documentation.open-xchange.com/appsuite/releases/8.26/) | Online documentation available from within the installed application; [Additional resources](https://www.open-xchange.com/resources/oxpedia) |
| Knowledge management | XWiki | [16.4.1](https://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/16.4.1/) | [For the most recent release](https://www.xwiki.org/xwiki/bin/view/Documentation) | | Knowledge management | XWiki | [16.4.4](https://www.xwiki.org/xwiki/bin/view/ReleaseNotes/Data/XWiki/16.4.4/) | [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 | [1.0] | [Univention's documentation website](https://docs.software-univention.de/n/en/nubus.html) |
| Project management | OpenProject | [14.4.0](https://www.openproject.org/docs/release-notes/14-4-0/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) | | Project management | OpenProject | [14.6.1](https://www.openproject.org/docs/release-notes/14-6-1/) | [For the most recent release](https://www.openproject.org/docs/user-guide/) |
| Videoconferencing | Jitsi | [2.0.9646](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9646) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) | | Videoconferencing | Jitsi | [2.0.9646](https://github.com/jitsi/jitsi-meet/releases/tag/stable%2Fjitsi-meet_9646) | [For the most recent release](https://jitsi.github.io/handbook/docs/category/user-guide/) |
| Weboffice | Collabora | [24.04.6.1.1](https://www.collaboraoffice.com/code-24-04-release-notes/) | Online documentation available from within the installed application; [Additional resources](https://sdk.collaboraonline.com/) | | Weboffice | Collabora | [24.04.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.

24
REUSE.toml Normal file
View File

@@ -0,0 +1,24 @@
# SPDX-FileCopyrightText: 2024 Bundesministerium des Innern und für Heimat, PG ZenDiS "Projektgruppe für Aufbau ZenDiS"
# SPDX-License-Identifier: Apache-2.0
version = 1
[[annotations]]
path = "cspell.json"
SPDX-FileCopyrightText = "2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH"
SPDX-License-Identifier = "Apache-2.0"
[[annotations]]
path = "helmfile/files/gpg-pubkeys/*"
SPDX-FileCopyrightText = "2023 Bundesministerium des Innern und für Heimat, PG ZenDiS \"Projektgruppe für Aufbau ZenDiS\""
SPDX-License-Identifier = "CC0-1.0"
[[annotations]]
path = "helmfile/files/theme/*"
SPDX-FileCopyrightText = "2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH"
SPDX-License-Identifier = "Apache-2.0"
[[annotations]]
path = "helmfile/files/portal-tiles/*"
SPDX-FileCopyrightText = "2024 Google LLC"
SPDX-License-Identifier = "Apache-2.0"

View File

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

View File

@@ -25,7 +25,7 @@ script_path = os.path.dirname(os.path.realpath(__file__))
log_path = script_path+'/../logs' log_path = script_path+'/../logs'
charts_yaml = script_path+'/../helmfile/environments/default/charts.yaml' charts_yaml = script_path+'/../helmfile/environments/default/charts.yaml'
base_repo_path = script_path+'/..' base_repo_path = script_path+'/..'
base_helmfile = base_repo_path+'/helmfile_generic.yaml' base_helmfile = base_repo_path+'/helmfile_generic.yaml.gotmpl'
helmfile_backup_extension = '.bak' helmfile_backup_extension = '.bak'
Path(log_path).mkdir(parents=True, exist_ok=True) Path(log_path).mkdir(parents=True, exist_ok=True)

View File

@@ -33,10 +33,11 @@ You might want to set credential variables in the GitLab project at `Settings` >
# Tests # Tests
The GitLab CI pipeline contains a job named `run-tests` that can trigger a test suite pipeline on another GitLab project. The GitLab CI pipeline contains a job named `run-tests` that can trigger a test suite pipeline on another GitLab project.
The `DEPLOY_`-variables are used to determine which components should be tested.
In order for the trigger to work, the variable `TESTS_PROJECT_URL` has to be set on this GitLab project's CI variables In order for the trigger to work, the variable `TESTS_PROJECT_URL` has to be set on this GitLab project's CI variables
that can be found at `Settings` -> `CI/CD` -> `Variables`. The variable should have this format: that can be found at `Settings` -> `CI/CD` -> `Variables`. The variable should have this format:
`<domain of gitlab>/api/v4/projects/<id>`. `<domain of gitlab>/api/v4/projects/<id>`.
To select the current testset, use the variable `TESTS_TESTSET`. Default: `Smoke`.
If the branch of the test pipeline is not `main` this can be set with the `.gitlab-ci.yml` variable If the branch of the test pipeline is not `main` this can be set with the `.gitlab-ci.yml` variable
`TESTS_BRANCH` while creating a new pipeline. `TESTS_BRANCH` while creating a new pipeline.
The variable `testprofile` within the job is set to `Namespace`, which tells the e2e tests to use environment specific settings that will be read from the cluster and namespace specific file in the opendesk-env repository.

View File

@@ -33,21 +33,20 @@ 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 |
| Jitsi | Videoconferencing | Functional | | Jitsi | Videoconferencing | Functional |
| MariaDB | Database | Eval | | MariaDB | Database | Eval |
| Memcached | Cache Database | Eval | | Memcached | Cache Database | Eval |
| MinIO | Object Storage | Eval | | MinIO | Object Storage | Eval |
| Nextcloud | File share | Functional | | Nextcloud | File share | Functional |
| Nubus (UMS) | Identity Management & Portal | Functional |
| OpenProject | Project management | Functional | | OpenProject | Project management | Functional |
| OX Appsuite | Groupware | Functional | | OX Appsuite | Groupware | Functional |
| OX Dovecot | Mail backend (IMAP) | Functional | | OX Dovecot | Mail backend (IMAP) | Functional |
| Provisioning (OX Connector) | Groupware provisioning | Functional |
| Postfix | MTA | Eval | | Postfix | MTA | Eval |
| PostgreSQL | Database | Eval | | PostgreSQL | Database | Eval |
| Redis | Cache Database | Eval | | Redis | Cache Database | Eval |
| Univention Management Stack | Identity Management & Portal | Functional |
| XWiki | Knowledge Management | Functional | | XWiki | Knowledge Management | Functional |
# Component integration # Component integration
@@ -74,9 +73,9 @@ Most details can be found in the upstream documentation that is linked in the re
## Intercom Service / Silent Login ## Intercom Service / Silent Login
The Intercom Service's role is to enable cross-application integration based on the user's browser interaction as handling The Intercom Service is deployed in context of Nubus/UMS. Its role is to enable cross-application integration
authentication when the frontend of an application has to call the API from another application is often a based on the user's browser interaction as handling authentication when the frontend of an application has to call
challenge. the API from another application is often a challenge.
To establish a session with the Intercom Service an application can use the silent login feature within an iframe. To establish a session with the Intercom Service an application can use the silent login feature within an iframe.

View File

@@ -36,6 +36,9 @@ component's log level to debug and it get some features like:
- An ingress for `http://minio-console.<your_domain>` is configured. - An ingress for `http://minio-console.<your_domain>` is configured.
and set the log level for components to "Debug". and set the log level for components to "Debug".
**Note**: When enabling debug and running upgrades you must manually delete all jobs before the upgrade. As with debug
we keep the jobs and some job fields are immutable it could otherwise lead into an upgrade failure.
**Note:** All containers should write their log output to STDOUT, if you find (valuable) logs inside a container, please let us know! **Note:** All containers should write their log output to STDOUT, if you find (valuable) logs inside a container, please let us know!
# Adding containers to a pod for debugging purposes # Adding containers to a pod for debugging purposes
@@ -153,7 +156,7 @@ OpenProject is a Ruby on Rails application. Therefore you can make use of the Ra
and run debug code like this: and run debug code like this:
``` ```
uri = URI('https://nextcloud.url/index.php/apps/integration_openproject/check-config') uri = URI('https://nextcloud.url/apps/integration_openproject/check-config')
Net::HTTP.start(uri.host, uri.port, Net::HTTP.start(uri.host, uri.port,
:use_ssl => uri.scheme == 'https') do |http| :use_ssl => uri.scheme == 'https') do |http|
request = Net::HTTP::Get.new uri request = Net::HTTP::Get.new uri

View File

@@ -138,6 +138,9 @@ configured to pull artifacts that do not originate from Open CoDE into projects
The mirror script takes the information on what artifacts to mirror from the annotation inside the two yaml files: The mirror script takes the information on what artifacts to mirror from the annotation inside the two yaml files:
- `# upstreamRegistry` *required*: To identify the source registry - `# upstreamRegistry` *required*: To identify the source registry
- `# upstreamRegistryCredentialId`: *optional*: In case the source registry is not public the access credentials have to be specified as ENV variables containing the value of this key in their name, so you want to specific that key all uppercase:
- `MIRROR_CREDENTIALS_SRC_<upstreamRegistryCredentialId>_USERNAME`
- `MIRROR_CREDENTIALS_SRC_<upstreamRegistryCredentialId>_PASSWORT`
- `# upstreamRepository` *required*: To identify the source repository - `# upstreamRepository` *required*: To identify the source repository
- `# upstreamMirrorTagFilterRegEx` *required*: If this annotation is set it activates the mirror for the component. Only tags are being mirrored that match the given regular expression. **Note:** You have to use single quotes for this attribute's value in case you use backslash leading regex notation like `\d`. - `# upstreamMirrorTagFilterRegEx` *required*: If this annotation is set it activates the mirror for the component. Only tags are being mirrored that match the given regular expression. **Note:** You have to use single quotes for this attribute's value in case you use backslash leading regex notation like `\d`.
- `# upstreamMirrorStartFrom` *optional*: Array of numeric values in case you want to mirror only artifacts beginning with a specific version. You must use capturing groups - `# upstreamMirrorStartFrom` *optional*: Array of numeric values in case you want to mirror only artifacts beginning with a specific version. You must use capturing groups

View File

@@ -60,16 +60,16 @@ The deployment is designed to deploy each application/service under a dedicated
For your convenience, we recommend to create a `*.domain.tld` A-Record to your cluster ingress controller, 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
@@ -109,7 +109,6 @@ All available apps and their default value can be found in `helmfile/environment
| 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 |
| 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 |
@@ -118,7 +117,6 @@ All available apps and their default value can be found in `helmfile/environment
| Nubus | `nubus.enabled` | `true` | Identity Management & Portal | | Nubus | `nubus.enabled` | `true` | Identity Management & Portal |
| OpenProject | `openproject.enabled` | `true` | Project management | | OpenProject | `openproject.enabled` | `true` | Project management |
| OX Appsuite | `oxAppsuite.enabled` | `true` | Groupware | | OX Appsuite | `oxAppsuite.enabled` | `true` | Groupware |
| Provisioning | `oxConnector.enabled` | `true` | Backend provisioning |
| Postfix | `postfix.enabled` | `true` | MTA | | Postfix | `postfix.enabled` | `true` | MTA |
| PostgreSQL | `postgresql.enabled` | `true` | Database | | PostgreSQL | `postgresql.enabled` | `true` | Database |
| Redis | `redis.enabled` | `true` | Cache Database | | Redis | `redis.enabled` | `true` | Cache Database |
@@ -157,6 +155,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
@@ -263,6 +270,8 @@ To use the openDesk functionality with its web based user interface you need to
| Component | Description | Port | Type | | Component | Description | Port | Type |
| ------------------ | ----------------------- | ----: | ---: | | ------------------ | ----------------------- | ----: | ---: |
| openDesk | Kubernetes Ingress | 80 | TCP |
| openDesk | Kubernetes Ingress | 443 | TCP |
| Jitsi Video Bridge | ICE Port for video data | 10000 | UDP | | Jitsi Video Bridge | ICE Port for video data | 10000 | UDP |
#### Mail clients #### Mail clients
@@ -288,6 +297,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

View File

@@ -8,7 +8,15 @@ SPDX-License-Identifier: Apache-2.0
* [Disclaimer](#disclaimer) * [Disclaimer](#disclaimer)
* [Releases upgrades](#releases-upgrades) * [Releases upgrades](#releases-upgrades)
* [From v0.9.0](#from-v090) * [From v0.9.0](#from-v090)
* [Changed openDesk defaults](#changed-opendesk-defaults)
* [Removal of unnecessary OX-Profiles in Nubus](#removal-of-unnecessary-ox-profiles-in-nubus)
* [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)
* [Dedicated group for access of the UDM REST API](#dedicated-group-for-access-of-the-udm-rest-api)
* [Automated migrations](#automated-migrations) * [Automated migrations](#automated-migrations)
* [Local Postfix as Relay](#local-postfix-as-relay)
* [Updated IAM component Nubus](#updated-iam-component-nubus) * [Updated IAM component Nubus](#updated-iam-component-nubus)
* [Manual cleanup](#manual-cleanup) * [Manual cleanup](#manual-cleanup)
* [From v0.8.1](#from-v081) * [From v0.8.1](#from-v081)
@@ -24,25 +32,208 @@ 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. Though we try to ease the pain when it comes to 0.x upgrades. That is what this document is for.
Limitations: **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. - 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 # Releases upgrades
## From v0.9.0 ## From v0.9.0
### Changed openDesk defaults
#### Removal of unnecessary OX-Profiles in Nubus
**Warning: If you do not address this section with your current deployment the upgrade will fail.**
The update will remove unnecessary OX-Profiles in Nubus, but can't as long as these profiles are in use.
So please ensure that only the following two supported profiles are assigned to your users:
- `opendesk_standard`: "opendesk Standard"
- `none`: "Login disabled"
You can review and update other accounts as follows:
- Login as IAM admin.
- Open the user module.
- Open the extended search by clicking the funnel (Trichter) icon next to the search input field.
- Open the "Property" (Eigenschaft) list and select "OX Access" (OX-Berechtigung).
- In the input field right next to the list enter an asterisk (*).
- Start the search by clicking once more on the funnel icon.
- Sort the result list for the "OX Access" column
- Edit every user that has a value different to `opendesk_standard` or `none`:
- Open the user.
- Go to section "OX App Suite".
- Change the value in the dropdown "OX Access" to either:
- "openDesk Standard" if the user should be able to use the Groupware module or
- "Login disabled" if the user should not user the Groupware module.
- Update the user account with the green "SAVE" button on top of the page.
#### 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"
```
In case you would like to use the updated hostnames you at least have to apply some manual changes. But do this at
your own risk. Be also aware that some of your user's bookmarks and links will stop working.
- Update the affected portal tiles:
- All tiles in the "Files" category.
- The "Projects" tile in the "Management" category.
- There are two options to change the link for the portal tiles:
- Use an admin account to access the portal's edit mode (on the bottom of the sidebar portal's menu).
- Utilize the UDM REST API to update the portal tile objects.
- Update the hostnames for the OpenProject-Nextcloud integration using a functional admin user for both components:
- In OpenProject: *Administration* > *Files* > *External file storages* > Select `Nextcloud at [your_domain]`
Edit *Details* - *General Information* - *Storage provider* and update the *hostname* to `files.<your_domain>`.
- In Nextcloud: *Administration* > *OpenProject* > *OpenProject server* update the *OpenProject host* to
to `projects.<your_domain>`.
#### 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"
```
#### Dedicated group for access of the UDM REST API
Prerequisite: You allow the use of the [IAM's API](https://docs.software-univention.de/developer-reference/5.0/en/udm/rest-api.html)
with the following settings:
```
functional:
externalServices:
nubus:
udmRestApi:
enabled: true
```
With 0.9.0 all members of the group "Domain Admins" were able to successfully authenticate with the API.
This has been changed and there is now a dedicated group required for using the API: `IAM API - Full Access`
If you need specific accounts to make use of the API, please go ahead and assign them to the aforementioned group.
### Automated migrations ### 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 #### 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 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: upgrade migrations executes the following steps:
- Stage PRE: - Stage `PRE`:
- Delete service `ums-keycloak`, as it will be recreated headless. - 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: - 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. - Create two new PVCs `shared-data-ums-ldap-server-primary-0` and `shared-data-ums-ldap-server-primary-1` for the new LDAP primary pods as copy from the existing `shared-data-ums-ldap-server-0`. The LDAP secondaries will sync from the primary nodes.
- Stage POST: - Stage `POST`:
- Restart Keycloak. - Restart Keycloak.
##### Manual cleanup ##### Manual cleanup

View File

@@ -24,7 +24,7 @@ openDesk is a Kubernetes only solution and requires an existing Kubernetes (K8s)
- Domain and DNS Service - Domain and DNS Service
- Ingress controller (Ingress NGINX) - 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/) >= **v1.0.0-rc.5**
- [HelmDiff](https://github.com/databus23/helm-diff) >= 3.6.0 - [HelmDiff](https://github.com/databus23/helm-diff) >= 3.6.0
- Volume provisioner supporting RWO (read-write-once) - Volume provisioner supporting RWO (read-write-once)
- Certificate handling with [cert-manager](https://cert-manager.io/) - Certificate handling with [cert-manager](https://cert-manager.io/)

View File

@@ -158,7 +158,6 @@ This list gives you an overview of templated security settings and if they compl
| **element**/opendesk-synapse | :white_check_mark: | no | no | yes | yes | 10991 | 10991 | yes | yes | | **element**/opendesk-synapse | :white_check_mark: | no | no | yes | yes | 10991 | 10991 | yes | yes |
| **element**/opendesk-synapse-web | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes | | **element**/opendesk-synapse-web | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes |
| **element**/opendesk-well-known | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes | | **element**/opendesk-well-known | :white_check_mark: | no | no | yes | yes | 101 | 101 | yes | yes |
| **intercom-service**/intercom-service | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **jitsi**/jitsi | :white_check_mark: | no | no | yes | yes | 1993 | 1993 | yes | yes | | **jitsi**/jitsi | :white_check_mark: | no | no | yes | yes | 1993 | 1993 | yes | yes |
| **jitsi**/jitsi/jitsi/jibri | :x: | n/a | n/a | n/a | n/a | n/a | n/a | n/a | no ["SYS_ADMIN"] | | **jitsi**/jitsi/jitsi/jibri | :x: | n/a | n/a | n/a | n/a | n/a | n/a | n/a | no ["SYS_ADMIN"] |
| **jitsi**/jitsi/jitsi/jicofo | :x: | no | no | no | no | 0 | 0 | yes | no | | **jitsi**/jitsi/jitsi/jicofo | :x: | no | no | no | no | 0 | 0 | yes | no |
@@ -183,7 +182,7 @@ This list gives you an overview of templated security settings and if they compl
| **open-xchange**/open-xchange/public-sector-ui | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes | | **open-xchange**/open-xchange/public-sector-ui | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **openproject**/openproject | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes | | **openproject**/openproject | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **openproject-bootstrap**/opendesk-openproject-bootstrap | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes | | **openproject-bootstrap**/opendesk-openproject-bootstrap | :white_check_mark: | no | no | yes | yes | 1000 | 1000 | yes | yes |
| **provisioning**/ox-connector | :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"] | | **open-xchange**/ox-connector | :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"] |
| **services**/clamav | :x: | no | no | yes | no | 0 | 0 | yes | no | | **services**/clamav | :x: | no | no | yes | no | 0 | 0 | yes | no |
| **services**/clamav-simple | :white_check_mark: | no | no | yes | yes | 100 | 101 | yes | yes | | **services**/clamav-simple | :white_check_mark: | no | no | yes | yes | 100 | 101 | yes | yes |
| **services**/clamav/clamd | :white_check_mark: | no | no | yes | yes | 100 | 101 | yes | yes | | **services**/clamav/clamd | :white_check_mark: | no | no | yes | yes | 100 | 101 | yes | yes |
@@ -196,6 +195,7 @@ This list gives you an overview of templated security settings and if they compl
| **services**/postfix | :x: | yes | yes | no | no | 0 | 0 | yes | no | | **services**/postfix | :x: | yes | yes | no | no | 0 | 0 | yes | no |
| **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**/intercom-service | :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**/opendesk-keycloak-bootstrap | :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 | :x: | no | no | no | yes | 1000 | 1000 | yes | yes |
| **univention-management-stack**/ums/keycloak-bootstrap | :x: | no | no | no | yes | 1000 | 1000 | yes | yes | | **univention-management-stack**/ums/keycloak-bootstrap | :x: | no | no | no | yes | 1000 | 1000 | yes | yes |

View File

@@ -355,7 +355,7 @@ Commit messages must adhere to the [Conventional Commit standard](https://www.co
│ │ | │ │ |
│ │ └─> Issue reference (optional) │ │ └─> Issue reference (optional)
│ │ │ │
│ └─> Commit Scope: helmfile, docs, collabora, intercom-service, ... │ └─> Commit Scope: helmfile, docs, collabora, nextcloud, open-xhcange etc.
└─> Commit Type: chore, ci, docs, feat, fix └─> Commit Type: chore, ci, docs, feat, fix
``` ```

View File

@@ -15,7 +15,7 @@ environments:
--- ---
# 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 }}
# {{/* # {{/*

View File

@@ -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"
@@ -19,6 +18,7 @@ releases:
version: "{{ .Values.charts.collabora.version }}" version: "{{ .Values.charts.collabora.version }}"
values: values:
- "values.yaml.gotmpl" - "values.yaml.gotmpl"
- {{ .Values.customization.release.collaboraOnline | default "additionalValues: false" }}
installed: {{ .Values.collabora.enabled }} installed: {{ .Values.collabora.enabled }}
commonLabels: commonLabels:

View File

@@ -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 }}
... ...

View File

@@ -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,13 @@ autoscaling:
enabled: false enabled: false
collabora: collabora:
extra_params: "--o:ssl.enable=false --o:ssl.termination=true --o:fetch_update_check=0" extra_params: >
--o:ssl.enable=false
--o:ssl.termination=true
--o:fetch_update_check=0
--o:remote_font_config.url=https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/apps/richdocuments/settings/fonts.json
--o:net.proto={{ if eq .Values.cluster.networking.ipFamilies "DualStack" }}all{{ else }}{{ .Values.cluster.networking.ipFamilies }}{{ end }}
username: "collabora-internal-admin" username: "collabora-internal-admin"
password: {{ .Values.secrets.collabora.adminPassword | quote }} password: {{ .Values.secrets.collabora.adminPassword | quote }}
aliasgroups: aliasgroups:
@@ -24,7 +31,7 @@ grafana:
{{ .Values.monitoring.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 }}
@@ -83,6 +90,8 @@ ingress:
hosts: hosts:
- "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}" - "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}"
podAnnotations: {}
podSecurityContext: podSecurityContext:
fsGroup: 100 fsGroup: 100
@@ -115,17 +124,9 @@ securityContext:
- "ALL" - "ALL"
add: add:
- "CHOWN" - "CHOWN"
- "DAC_OVERRIDE"
- "FOWNER" - "FOWNER"
- "FSETID"
- "KILL"
- "SETGID"
- "SETUID"
- "SETPCAP"
- "NET_BIND_SERVICE"
- "NET_RAW"
- "SYS_CHROOT" - "SYS_CHROOT"
- "MKNOD"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.collabora | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.collabora | toYaml | nindent 4 }}
serviceAccount: serviceAccount:

View File

@@ -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"
@@ -19,6 +18,7 @@ releases:
version: "{{ .Values.charts.cryptpad.version }}" version: "{{ .Values.charts.cryptpad.version }}"
values: values:
- "values.yaml.gotmpl" - "values.yaml.gotmpl"
- {{ .Values.customization.release.cryptpad | default "additionalValues: false" }}
installed: {{ .Values.cryptpad.enabled }} installed: {{ .Values.cryptpad.enabled }}
commonLabels: commonLabels:

View File

@@ -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 }}
... ...

View File

@@ -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 }}
@@ -50,6 +53,8 @@ ingress:
persistence: persistence:
enabled: false enabled: false
podAnnotations: {}
podSecurityContext: podSecurityContext:
fsGroup: 4001 fsGroup: 4001

View File

@@ -10,40 +10,36 @@ 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,41 +49,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:
- name: "opendesk-element" - name: "opendesk-element"
@@ -95,6 +85,7 @@ releases:
version: "{{ .Values.charts.element.version }}" version: "{{ .Values.charts.element.version }}"
values: values:
- "values-element.yaml.gotmpl" - "values-element.yaml.gotmpl"
- {{ .Values.customization.release.opendeskElement | default "additionalValues: false" }}
installed: {{ .Values.element.enabled }} installed: {{ .Values.element.enabled }}
timeout: 900 timeout: 900
@@ -103,6 +94,7 @@ releases:
version: "{{ .Values.charts.elementWellKnown.version }}" version: "{{ .Values.charts.elementWellKnown.version }}"
values: values:
- "values-well-known.yaml.gotmpl" - "values-well-known.yaml.gotmpl"
- {{ .Values.customization.release.opendeskWellKnown | default "additionalValues: false" }}
installed: {{ .Values.element.enabled }} installed: {{ .Values.element.enabled }}
timeout: 900 timeout: 900
@@ -111,6 +103,7 @@ releases:
version: "{{ .Values.charts.synapseWeb.version }}" version: "{{ .Values.charts.synapseWeb.version }}"
values: values:
- "values-synapse-web.yaml.gotmpl" - "values-synapse-web.yaml.gotmpl"
- {{ .Values.customization.release.opendeskSynapseWeb | default "additionalValues: false" }}
installed: {{ .Values.element.enabled }} installed: {{ .Values.element.enabled }}
timeout: 900 timeout: 900
@@ -119,6 +112,7 @@ releases:
version: "{{ .Values.charts.synapse.version }}" version: "{{ .Values.charts.synapse.version }}"
values: values:
- "values-synapse.yaml.gotmpl" - "values-synapse.yaml.gotmpl"
- {{ .Values.customization.release.opendeskSynapse | default "additionalValues: false" }}
installed: {{ .Values.element.enabled }} installed: {{ .Values.element.enabled }}
timeout: 900 timeout: 900

View File

@@ -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 }}
... ...

View File

@@ -1,11 +1,13 @@
# 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.nubus }}.{{ .Values.global.domain }}" logout_redirect_url: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}/protocol/openid-connect/logout?client_id=opendesk-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:
@@ -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 }}
@@ -133,6 +137,8 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -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 Center for Digital Sovereignty of Public Administration (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG ZenDiS "Project group for the development of 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 }}
@@ -37,6 +40,8 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -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 Center for Digital Sovereignty of Public Administration (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG ZenDiS "Project group for the development of 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 }}
@@ -37,6 +40,8 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -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 Center for Digital Sovereignty of Public Administration (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG ZenDiS "Project group for the development of ZenDiS"
SPDX-License-Identifier: Apache-2.0
*/}}
--- ---
cleanup: cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }} deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
@@ -16,13 +19,15 @@ 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 }}
fullnameOverride: "matrix-neodatefix-bot-bootstrap" fullnameOverride: "matrix-neodatefix-bot-bootstrap"
podAnnotations: {}
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:

View File

@@ -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 Center for Digital Sovereignty of Public Administration (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG ZenDiS "Project group for the development of ZenDiS"
SPDX-License-Identifier: Apache-2.0
*/}}
--- ---
global: global:
domain: {{ .Values.global.domain | quote }} domain: {{ .Values.global.domain | quote }}
@@ -11,7 +14,7 @@ global:
configuration: configuration:
bot: bot:
username: "meetings-bot" username: "meetings-bot"
displayname: "Terminplaner Bot" display name: "Terminplaner Bot"
openxchangeBaseUrl: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}" openxchangeBaseUrl: "https://{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
strings: strings:
breakoutSessionWidgetName: "Breakoutsessions" breakoutSessionWidgetName: "Breakoutsessions"
@@ -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 }}
@@ -58,13 +61,15 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
livenessProbe: liveness sample:
enabled: true enabled: true
persistence: persistence:
size: {{ .Values.persistence.size.matrixNeoDateFixBot | quote }} size: {{ .Values.persistence.size.matrixNeoDateFixBot | quote }}
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -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 Center for Digital Sovereignty of Public Administration (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG ZenDiS "Project group for the development of 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 }}
@@ -42,6 +45,8 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -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 Center for Digital Sovereignty of Public Administration (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG ZenDiS "Project group for the development of ZenDiS"
SPDX-License-Identifier: Apache-2.0
*/}}
--- ---
cleanup: cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }} deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
@@ -16,13 +19,15 @@ 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 }}
fullnameOverride: "opendesk-matrix-user-verification-service-bootstrap" fullnameOverride: "opendesk-matrix-user-verification-service-bootstrap"
podAnnotations: {}
securityContext: securityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:

View File

@@ -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 Center for Digital Sovereignty of Public Administration (ZenDiS) GmbH
SPDX-FileCopyrightText: 2023 Federal Ministry of the Interior and Community, PG ZenDiS "Project group for the development of ZenDiS"
SPDX-License-Identifier: Apache-2.0
*/}}
--- ---
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -35,10 +38,12 @@ 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 }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -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 }}
@@ -29,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 }}
@@ -48,6 +51,8 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -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:
@@ -11,8 +14,8 @@ configuration:
- "m.space.parent" - "m.space.parent"
- "net.nordeck.meetings.metadata" - "net.nordeck.meetings.metadata"
- "m.room.power_levels" - "m.room.power_levels"
# When a user logs into Element a parallel request is done through Intercom Service to allow Synapse API # To allow intercom service logins for the users and also allow proper testautomation we want to raise the
# interaction, to avoid (temporary) blocking of the user for followup logins we want to raise the limits. # ratelimit in a reasonable manner.
# https://matrix-org.github.io/synapse/v1.59/usage/configuration/config_documentation.html#ratelimiting # https://matrix-org.github.io/synapse/v1.59/usage/configuration/config_documentation.html#ratelimiting
rc_login: rc_login:
account: account:
@@ -50,20 +53,26 @@ configuration:
url: null url: null
sender_localpart: ox-appsuite sender_localpart: ox-appsuite
presence: presence:
enabled: {{ .Values.functional.dataProtection.matrixPresence.enabled }} enabled: {{ .Values.functional.dataProtection.matrixPresence.enabled }}
profile:
allowUsersToUpdateDisplayname: {{ .Values.functional.chat.matrix.profile.allowUsersToUpdateDisplayname }}
smtp: smtp:
senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.element }}.{{ end }}{{ .Values.global.domain }}" senderAddress: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
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 }} port: 25
username: {{ .Values.smtp.username | quote }} tls: false
password: {{ .Values.smtp.password | quote }} 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: scopes:
- "openid" - "openid"
- "opendesk-matrix-scope" - "opendesk-matrix-scope"
@@ -85,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 }}
@@ -124,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 }}
@@ -132,6 +141,8 @@ persistence:
size: {{ .Values.persistence.size.synapse | quote }} size: {{ .Values.persistence.size.synapse | quote }}
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 10991 fsGroup: 10991

View File

@@ -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 }}
@@ -42,6 +45,8 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -1,27 +0,0 @@
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
# SPDX-License-Identifier: Apache-2.0
---
repositories:
# Intercom Service
# Source: https://gitlab.souvap-univention.de/souvap/tooling/charts/intercom-service
- name: "intercom-service-repo"
keyring: "../../files/gpg-pubkeys/souvap-univention-de.gpg"
verify: {{ .Values.charts.intercomService.verify }}
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
oci: true
url: "{{ .Values.global.helmRegistry | default .Values.charts.intercomService.registry }}/\
{{ .Values.charts.intercomService.repository }}"
releases:
- name: "intercom-service"
chart: "intercom-service-repo/{{ .Values.charts.intercomService.name }}"
version: "{{ .Values.charts.intercomService.version }}"
values:
- "values.yaml.gotmpl"
installed: {{ .Values.intercom.enabled }}
commonLabels:
deploy-stage: "component-1"
component: "intercom-service"
...

View File

@@ -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"
@@ -19,6 +18,7 @@ releases:
version: "{{ .Values.charts.jitsi.version }}" version: "{{ .Values.charts.jitsi.version }}"
values: values:
- "values-jitsi.yaml.gotmpl" - "values-jitsi.yaml.gotmpl"
- {{ .Values.customization.release.jitsi | default "additionalValues: false" }}
installed: {{ .Values.jitsi.enabled }} installed: {{ .Values.jitsi.enabled }}
timeout: 900 timeout: 900

View File

@@ -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 }}
...

View File

@@ -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 }}
... ...

View File

@@ -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
*/}} */}}
@@ -9,6 +10,7 @@ global:
{{ .Values.global.hosts | toYaml | nindent 4 }} {{ .Values.global.hosts | toYaml | nindent 4 }}
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
podAnnotations: {}
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
@@ -31,7 +33,7 @@ cleanup:
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,8 +50,9 @@ 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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
ingress: ingress:
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
ingressClassName: {{ .Values.ingress.ingressClassName | quote }} ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
@@ -61,6 +64,8 @@ jitsi:
- secretName: {{ .Values.ingress.tls.secretName | quote }} - secretName: {{ .Values.ingress.tls.secretName | quote }}
hosts: hosts:
- "{{ .Values.global.hosts.jitsi }}.{{ .Values.global.domain }}" - "{{ .Values.global.hosts.jitsi }}.{{ .Values.global.domain }}"
extraConfigJs:
doNotStoreRoom: {{ not .Values.functional.dataProtection.jitsiRoomHistory.enabled }}
extraEnvs: extraEnvs:
TURN_ENABLE: "1" TURN_ENABLE: "1"
resources: resources:
@@ -79,8 +84,9 @@ 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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.global.imagePullSecrets }} {{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }} - name: {{ . | quote }}
@@ -128,8 +134,9 @@ 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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
xmpp: xmpp:
password: {{ .Values.secrets.jitsi.jicofoAuthPassword | quote }} password: {{ .Values.secrets.jitsi.jicofoAuthPassword | quote }}
componentSecret: {{ .Values.secrets.jitsi.jicofoComponentPassword | quote }} componentSecret: {{ .Values.secrets.jitsi.jicofoComponentPassword | quote }}
@@ -150,8 +157,9 @@ 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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
xmpp: xmpp:
password: {{ .Values.secrets.jitsi.jvbAuthPassword | quote }} password: {{ .Values.secrets.jitsi.jvbAuthPassword | quote }}
resources: resources:
@@ -173,8 +181,9 @@ 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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
recorder: recorder:
password: {{ .Values.secrets.jitsi.jibriRecorderPassword | quote }} password: {{ .Values.secrets.jitsi.jibriRecorderPassword | quote }}
xmpp: xmpp:
@@ -211,9 +220,12 @@ 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 }}
podAnnotations: {}
replicaCount: {{ .Values.replicas.jitsiKeycloakAdapter }} replicaCount: {{ .Values.replicas.jitsiKeycloakAdapter }}
resources: resources:

View File

@@ -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.migrations.registry }}/\ url: "{{ .Values.global.helmRegistry | default .Values.charts.migrations.registry }}/{{ .Values.charts.migrations.repository }}"
{{ .Values.charts.migrations.repository }}"
releases: releases:
- name: "opendesk-migrations-post" - name: "opendesk-migrations-post"
@@ -22,6 +21,7 @@ releases:
values: values:
- "values.yaml.gotmpl" - "values.yaml.gotmpl"
- "../../shared/migrations.yaml.gotmpl" - "../../shared/migrations.yaml.gotmpl"
- {{ .Values.customization.release.migrationsPost | default "additionalValues: false" }}
installed: {{ .Values.migrations.enabled }} installed: {{ .Values.migrations.enabled }}
timeout: 900 timeout: 900

View File

@@ -5,7 +5,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 }}
... ...

View File

@@ -3,6 +3,8 @@
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
podAnnotations: {}
migrations: migrations:
stage: "POST" stage: "POST"
... ...

View File

@@ -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.migrations.registry }}/\ url: "{{ .Values.global.helmRegistry | default .Values.charts.migrations.registry }}/{{ .Values.charts.migrations.repository }}"
{{ .Values.charts.migrations.repository }}"
releases: releases:
- name: "opendesk-migrations-pre" - name: "opendesk-migrations-pre"
@@ -22,6 +21,7 @@ releases:
values: values:
- "values.yaml.gotmpl" - "values.yaml.gotmpl"
- "../../shared/migrations.yaml.gotmpl" - "../../shared/migrations.yaml.gotmpl"
- {{ .Values.customization.release.migrationsPre | default "additionalValues: false" }}
installed: {{ .Values.migrations.enabled }} installed: {{ .Values.migrations.enabled }}
timeout: 900 timeout: 900

View File

@@ -5,7 +5,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 }}
... ...

View File

@@ -3,6 +3,8 @@
SPDX-License-Identifier: Apache-2.0 SPDX-License-Identifier: Apache-2.0
*/}} */}}
--- ---
podAnnotations: {}
migrations: migrations:
stage: "PRE" stage: "PRE"
... ...

View File

@@ -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"
@@ -27,6 +25,7 @@ releases:
version: "{{ .Values.charts.nextcloudManagement.version }}" version: "{{ .Values.charts.nextcloudManagement.version }}"
values: values:
- "values-nextcloud-mgmt.yaml.gotmpl" - "values-nextcloud-mgmt.yaml.gotmpl"
- {{ .Values.customization.release.opendeskNextcloudManagement | default "additionalValues: false" }}
waitForJobs: true waitForJobs: true
wait: true wait: true
installed: {{ .Values.nextcloud.enabled }} installed: {{ .Values.nextcloud.enabled }}
@@ -36,6 +35,7 @@ releases:
version: "{{ .Values.charts.nextcloud.version }}" version: "{{ .Values.charts.nextcloud.version }}"
values: values:
- "values-nextcloud.yaml.gotmpl" - "values-nextcloud.yaml.gotmpl"
- {{ .Values.customization.release.opendeskNextcloud | default "additionalValues: false" }}
needs: needs:
- "opendesk-nextcloud-management" - "opendesk-nextcloud-management"
installed: {{ .Values.nextcloud.enabled }} installed: {{ .Values.nextcloud.enabled }}

View File

@@ -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 }}
...

View 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 }}
...

View File

@@ -18,8 +18,10 @@ cleanup:
configuration: configuration:
administrator: administrator:
username: "nextcloud" username:
password: {{ .Values.secrets.nextcloud.adminPassword | quote }} value: "nextcloud"
password:
value: {{ .Values.secrets.nextcloud.adminPassword | quote }}
antivirus: antivirus:
{{- if .Values.clamavDistributed.enabled }} {{- if .Values.clamavDistributed.enabled }}
host: "clamav-icap" host: "clamav-icap"
@@ -48,7 +50,8 @@ 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.nubus.ldapSearch.nextcloud | quote }} password:
value: {{ .Values.secrets.nubus.ldapSearch.nextcloud | quote }}
adminGroupName: "managed-by-attribute-FileshareAdmin" adminGroupName: "managed-by-attribute-FileshareAdmin"
objectstore: objectstore:
auth: auth:
@@ -73,16 +76,31 @@ 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 }} fromAddress: {{ .Values.smtp.localpartNoReply | quote }}
mailDomain: "{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.nextcloud }}.{{ end }}{{ .Values.global.domain }}" mailDomain: "{{ .Values.global.domain }}"
security: ""
skipVerifyPeer: true
quota: quota:
default: "{{ .Values.functional.filestore.quota.default }} GB" default: "{{ .Values.functional.filestore.quota.default }} GB"
retentionObligation: retentionObligation:
@@ -99,28 +117,30 @@ containerSecurityContext:
- "ALL" - "ALL"
enabled: true enabled: true
privileged: false privileged: false
runAsUser: 65532 runAsUser: 101
runAsGroup: 65532 runAsGroup: 101
seccompProfile: seccompProfile:
type: "RuntimeDefault" type: "RuntimeDefault"
readOnlyRootFilesystem: false readOnlyRootFilesystem: false
runAsNonRoot: true runAsNonRoot: true
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.nextcloudManagement | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.nextcloudManagement | toYaml | nindent 4 }}
podSecurityContext:
fsGroup: 101
debug: debug:
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"2"{{ end }} loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"2"{{ end }}
image: image:
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudManagement.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nextcloud.registry | quote }}
repository: {{ .Values.images.nextcloudManagement.repository | quote }} repository: {{ .Values.images.nextcloud.repository | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
tag: {{ .Values.images.nextcloudManagement.tag | quote }} tag: {{ .Values.images.nextcloud.tag | quote }}
theme: theme:
{{ .Values.theme | toYaml | nindent 2 }} {{ .Values.theme | toYaml | nindent 2 }}
resources: resources:
{{ .Values.resources.nextcloudPHP | toYaml | nindent 4 }} {{ .Values.resources.nextcloud | toYaml | nindent 4 }}
... ...

View File

@@ -28,10 +28,11 @@ 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 }}
podAnnotations: {}
prometheus: prometheus:
serviceMonitor: serviceMonitor:
enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }} enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }}
@@ -45,9 +46,9 @@ exporter:
resources: resources:
{{ .Values.resources.nextcloudExporter | toYaml | nindent 4 }} {{ .Values.resources.nextcloudExporter | toYaml | nindent 4 }}
php: aio:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "opendesk-nextcloud-php" intents.otterize.com/service-name: "opendesk-nextcloud"
configuration: configuration:
cache: cache:
auth: auth:
@@ -74,56 +75,23 @@ php:
- "ALL" - "ALL"
enabled: true enabled: true
privileged: false privileged: false
runAsUser: 65532 runAsUser: 101
runAsGroup: 65532 runAsGroup: 101
seccompProfile: seccompProfile:
type: "RuntimeDefault" type: "RuntimeDefault"
readOnlyRootFilesystem: true readOnlyRootFilesystem: true
runAsNonRoot: true runAsNonRoot: true
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.nextcloudPHP | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.nextcloud | toYaml | nindent 6 }}
cron: cron:
successfulJobsHistoryLimit: {{ if .Values.debug.enabled }}"3"{{ else }}"0"{{ end }} successfulJobsHistoryLimit: {{ if .Values.debug.enabled }}"3"{{ else }}"0"{{ end }}
debug: debug:
loglevel: {{ if .Values.debug.enabled }}"0"{{ else }}"2"{{ 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.nextcloud.registry | quote }}
repository: "{{ .Values.images.nextcloudPHP.repository }}" repository: "{{ .Values.images.nextcloud.repository }}"
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
tag: {{ .Values.images.nextcloudPHP.tag | quote }} tag: {{ .Values.images.nextcloud.tag | quote }}
prometheus:
serviceMonitor:
enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }}
labels:
{{ .Values.monitoring.prometheus.serviceMonitors.labels | toYaml | nindent 8 }}
prometheusRule:
enabled: {{ .Values.monitoring.prometheus.prometheusRules.enabled }}
additionalLabels:
{{ .Values.monitoring.prometheus.prometheusRules.labels | toYaml | nindent 8 }}
replicaCount: {{ .Values.replicas.nextcloudPHP }}
resources:
{{ .Values.resources.nextcloudPHP | toYaml | nindent 4 }}
apache2:
configuration:
php:
host: "opendesk-nextcloud-php.{{ .Release.Namespace }}.svc.{{ .Values.cluster.networking.domain }}"
trustedProxies: {{ join " " .Values.cluster.networking.cidr | quote }}
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
privileged: false
runAsUser: 65532
runAsGroup: 65532
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.nextcloudApache2 | toYaml | nindent 6 }}
ingress: ingress:
enabled: {{ .Values.ingress.enabled }} enabled: {{ .Values.ingress.enabled }}
annotations: annotations:
@@ -137,13 +105,20 @@ apache2:
host: "{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}" host: "{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}"
tls: tls:
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
image: podAnnotations: {}
registry: {{ .Values.global.imageRegistry | default .Values.images.nextcloudApache2.registry | quote }} podSecurityContext:
repository: {{ .Values.images.nextcloudApache2.repository | quote }} fsGroup: 101
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }} prometheus:
tag: {{ .Values.images.nextcloudApache2.tag | quote }} serviceMonitor:
replicaCount: {{ .Values.replicas.nextcloudApache2 }} enabled: {{ .Values.monitoring.prometheus.serviceMonitors.enabled }}
labels:
{{ .Values.monitoring.prometheus.serviceMonitors.labels | toYaml | nindent 8 }}
prometheusRule:
enabled: {{ .Values.monitoring.prometheus.prometheusRules.enabled }}
additionalLabels:
{{ .Values.monitoring.prometheus.prometheusRules.labels | toYaml | nindent 8 }}
replicaCount: {{ .Values.replicas.nextcloud }}
resources: resources:
{{ .Values.resources.nextcloudApache2 | toYaml | nindent 4 }} {{ .Values.resources.nextcloud | toYaml | nindent 4 }}
... ...

View File

@@ -10,17 +10,24 @@ repositories:
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.nubus.registry }}/\ "{{ .Values.global.helmRegistry | default .Values.charts.nubus.registry }}/{{ .Values.charts.nubus.repository }}"
{{ .Values.charts.nubus.repository }}" # Intercom Service
# OpenDesk Keycloak Bootstrap Chart # Source: https://gitlab.souvap-univention.de/souvap/tooling/charts/intercom-service
- name: "intercom-service-repo"
keyring: "../../files/gpg-pubkeys/univention-de.gpg"
verify: {{ .Values.charts.intercomService.verify }}
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
oci: true
url: "{{ .Values.global.helmRegistry | default .Values.charts.intercomService.registry }}/{{ .Values.charts.intercomService.repository }}"
# 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"
verify: {{ .Values.charts.opendeskKeycloakBootstrap.verify }} verify: {{ .Values.charts.opendeskKeycloakBootstrap.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.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
@@ -31,14 +38,25 @@ releases:
- "values-nubus.yaml.gotmpl" - "values-nubus.yaml.gotmpl"
- "values-opendesk-customization.yaml.gotmpl" - "values-opendesk-customization.yaml.gotmpl"
- "values-opendesk-images.yaml.gotmpl" - "values-opendesk-images.yaml.gotmpl"
- {{ .Values.customization.release.ums | default "additionalValues: false" }}
installed: {{ .Values.nubus.enabled }} installed: {{ .Values.nubus.enabled }}
timeout: 900 timeout: 900
# OpenDesk Keycloak Bootstrap Chart # Intercom-Service
- name: "intercom-service"
chart: "intercom-service-repo/{{ .Values.charts.intercomService.name }}"
version: "{{ .Values.charts.intercomService.version }}"
values:
- "values-intercom-service.yaml.gotmpl"
- {{ .Values.customization.release.intercomService | default "additionalValues: false" }}
installed: {{ .Values.nubus.enabled }}
# openDesk Keycloak Bootstrap Chart
- name: "opendesk-keycloak-bootstrap" - name: "opendesk-keycloak-bootstrap"
chart: "opendesk-keycloak-bootstrap-repo/{{ .Values.charts.opendeskKeycloakBootstrap.name }}" chart: "opendesk-keycloak-bootstrap-repo/{{ .Values.charts.opendeskKeycloakBootstrap.name }}"
version: "{{ .Values.charts.opendeskKeycloakBootstrap.version }}" version: "{{ .Values.charts.opendeskKeycloakBootstrap.version }}"
values: values:
- "values-opendesk-keycloak-bootstrap.yaml.gotmpl" - "values-opendesk-keycloak-bootstrap.yaml.gotmpl"
- {{ .Values.customization.release.opendeskKeycloakBootstrap | default "additionalValues: false" }}
needs: needs:
- "ums" - "ums"
installed: {{ .Values.nubus.enabled }} installed: {{ .Values.nubus.enabled }}

View File

@@ -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 }}
...

View 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 }}
...

View File

@@ -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
@@ -28,6 +31,7 @@ ics:
secret: {{ .Values.secrets.intercom.secret | quote }} secret: {{ .Values.secrets.intercom.secret | quote }}
issuerBaseUrl: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}" issuerBaseUrl: "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"
originRegex: "{{ .Values.global.domain }}" originRegex: "{{ .Values.global.domain }}"
userUniqueMapper: {{ if .Values.functional.chat.matrix.profile.useImmutableIdentifierForLocalpart }}"entryuuid"{{ else }}"phoenixusername"{{ end }}
keycloak: keycloak:
realm: {{ .Values.platform.realm | quote }} realm: {{ .Values.platform.realm | quote }}
default: default:
@@ -52,10 +56,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,11 +73,47 @@ ingress:
enabled: {{ .Values.ingress.tls.enabled }} enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }} secretName: {{ .Values.ingress.tls.secretName | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 1000 fsGroup: 1000
fsGroupChangePolicy: "Always" fsGroupChangePolicy: "Always"
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"
image:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
repository: {{ .Values.images.nubusWaitForDependency.repository | quote }}
tag: {{ .Values.images.nubusWaitForDependency.tag | quote }}
provisioningImage:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakBootstrap.registry | quote }}
repository: {{ .Values.images.nubusKeycloakBootstrap.repository | quote }}
tag: {{ .Values.images.nubusKeycloakBootstrap.tag | quote }}
securityContext:
seccompProfile:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.intercom | toYaml | nindent 6 }}
replicaCount: {{ .Values.replicas.intercomService }} replicaCount: {{ .Values.replicas.intercomService }}
resources: resources:

View File

@@ -1,5 +1,7 @@
# SPDX-FileCopyrightText: 2024 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-License-Identifier: Apache-2.0
*/}}
--- ---
global: global:
nubusDeployment: true nubusDeployment: true
@@ -7,8 +9,11 @@ global:
baseDn: {{ .Values.ldap.baseDn | quote }} baseDn: {{ .Values.ldap.baseDn | quote }}
domainName: {{ .Values.global.domain | quote }} domainName: {{ .Values.global.domain | quote }}
domain: {{ .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 }} ingressClass: {{ .Values.ingress.ingressClassName | default "nginx" | quote }}
certManagerIssuer: "letsencrypt-prod-dns" certManagerIssuer: {{ .Values.certificate.issuerRef.name | quote }}
nubusMasterPassword: {{ env "MASTER_PASSWORD" | default "sovereign-workplace" | quote }} nubusMasterPassword: {{ env "MASTER_PASSWORD" | default "sovereign-workplace" | quote }}
keycloak: keycloak:
realm: {{ .Values.platform.realm | quote }} realm: {{ .Values.platform.realm | quote }}
@@ -24,21 +29,45 @@ global:
defaultUsers: defaultUsers:
defaultAdminPassword: {{ .Values.secrets.nubus.defaultAccounts.adminPassword | quote}} defaultAdminPassword: {{ .Values.secrets.nubus.defaultAccounts.adminPassword | quote}}
defaultUserPassword: {{ .Values.secrets.nubus.defaultAccounts.userPassword | 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 to load. Add entries to load additional extensions into Nubus.
extensions: extensions:
- name: "ox" - name: "ox"
image: image:
registry: {{ .Values.images.nubusOxExtension.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusOxExtension.registry | quote }}
repository: {{ .Values.images.nubusOxExtension.repository }} repository: {{ .Values.images.nubusOxExtension.repository }}
tag: {{ .Values.images.nubusOxExtension.tag }} tag: {{ .Values.images.nubusOxExtension.tag }}
imagePullPolicy: "IfNotPresent" imagePullPolicy: {{ .Values.global.imagePullPolicy }}
- name: "opendesk" - name: "opendesk"
image: image:
registry: "registry.opencode.de" registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusOpendeskExtension.registry | quote }}
repository: "bmi/opendesk/components/platform-development/images/opendesk-nubus" repository: {{ .Values.images.nubusOpendeskExtension.repository }}
imagePullPolicy: "IfNotPresent" imagePullPolicy: {{ .Values.global.imagePullPolicy }}
tag: "1.1.0" tag: {{ .Values.images.nubusOpendeskExtension.tag }}
# -- Allows to configure the system extensions to load. This is intended for # -- Allows to configure the system extensions to load. This is intended for
# internal usage, prefer to use `global.extensions` for user configured # internal usage, prefer to use `global.extensions` for user configured
@@ -46,10 +75,80 @@ global:
systemExtensions: systemExtensions:
- name: "portal" - name: "portal"
image: image:
registry: {{ .Values.images.nubusPortalExtension.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusPortalExtension.registry | quote }}
repository: {{ .Values.images.nubusPortalExtension.repository }} repository: {{ .Values.images.nubusPortalExtension.repository }}
tag: {{ .Values.images.nubusPortalExtension.tag }} tag: {{ .Values.images.nubusPortalExtension.tag }}
imagePullPolicy: "IfNotPresent" imagePullPolicy: {{ .Values.global.imagePullPolicy }}
configUcr:
directory:
manager:
rest:
authorized-groups:
domain-admins: __DELETE_KEY__
iam-api-full-access: "cn=IAM API - Full Access,cn=groups,{{ .Values.ldap.baseDn }}"
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: "True"
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:
account-registration:
usertemplate: __DELETE_KEY__
passwordreset:
token_validity_period: 172800
blacklist:
groups: __DELETE_KEY__
ingress:
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }}
# Nubus bundled services # Nubus bundled services
postgresql: postgresql:
@@ -83,9 +182,15 @@ keycloak:
nubusGuardian: nubusGuardian:
provisioning: provisioning:
enabled: true enabled: false
config: config:
nubusBaseUrl: {{ printf "https://%s.%s" .Values.global.hosts.nubus .Values.global.domain }}
keycloak: keycloak:
realm: {{ .Values.platform.realm | quote }}
username: "kcadmin"
connection:
host: "{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}"
baseUrl: "http://ums-keycloak:8080"
credentialSecret: credentialSecret:
name: "ums-opendesk-keycloak-credentials" name: "ums-opendesk-keycloak-credentials"
key: "admin_password" key: "admin_password"
@@ -93,7 +198,12 @@ nubusGuardian:
credentialSecret: credentialSecret:
name: "ums-opendesk-guardian-client-secret" name: "ums-opendesk-guardian-client-secret"
key: "managementApiClientSecret" key: "managementApiClientSecret"
ingress:
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }}
postgresql: postgresql:
connection: connection:
host: {{ .Values.databases.umsGuardianManagementApi.host | quote }} host: {{ .Values.databases.umsGuardianManagementApi.host | quote }}
@@ -114,7 +224,20 @@ nubusNotificationsApi:
username: {{ .Values.databases.umsNotificationsApi.username | quote }} username: {{ .Values.databases.umsNotificationsApi.username | quote }}
database: {{ .Values.databases.umsNotificationsApi.name | quote }} database: {{ .Values.databases.umsNotificationsApi.name | quote }}
existingSecret: "ums-notifications-api-postgresql-opendesk-credentials" existingSecret: "ums-notifications-api-postgresql-opendesk-credentials"
ingress:
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusPortalFrontend:
ingress:
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName }}
nubusKeycloakExtensions: nubusKeycloakExtensions:
keycloak: keycloak:
@@ -138,6 +261,11 @@ nubusKeycloakExtensions:
path: "/resources/" path: "/resources/"
- pathType: "Prefix" - pathType: "Prefix"
path: "/fingerprintjs" path: "/fingerprintjs"
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }}
postgresql: postgresql:
@@ -152,10 +280,13 @@ nubusKeycloakExtensions:
key: "umcKeycloakExtensionsDatabasePassword" key: "umcKeycloakExtensionsDatabasePassword"
smtp: smtp:
connection: connection:
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
ssl: false
starttls: false
auth: auth:
username: {{ .Values.smtp.username | quote }} enabled: false
username: ""
credentialSecret: credentialSecret:
name: "ums-keycloak-extensions-smtp-opendesk-credentials" name: "ums-keycloak-extensions-smtp-opendesk-credentials"
key: "umcKeycloakExtensionsSmtpPassword" key: "umcKeycloakExtensionsSmtpPassword"
@@ -163,16 +294,20 @@ nubusKeycloakExtensions:
appConfig: appConfig:
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }} logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
newDeviceLoginSubject: "New device login on your {{ .Values.theme.texts.productName }} account" newDeviceLoginSubject: "New device login on your {{ .Values.theme.texts.productName }} account"
mailFrom: "{{ .Values.smtp.localpartNoReply }}@{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.keycloak }}.{{ end }}{{ .Values.global.domain }}" mailFrom: "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
nubusPortalListener: nubusPortalListener:
portalListener: 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 }} objectStorageEndpoint: {{ .Values.objectstores.nubus.endpoint | default (printf "https://%s.%s" .Values.global.hosts.minioApi .Values.global.domain) | quote }}
objectStorageBucket: {{ .Values.objectstores.nubus.bucket | quote }} objectStorageBucket: {{ .Values.objectstores.nubus.bucket | quote }}
objectStorageCredentialSecret: provisioningApi:
name: "ums-portal-listener-minio-opendesk-credentials" auth:
accessKeyKey: "access-key-id" username: "portal-consumer"
secretKeyKey: "secret-key-id"
nubusPortalServer: nubusPortalServer:
portalServer: portalServer:
@@ -185,19 +320,38 @@ nubusPortalServer:
centralNavigation: centralNavigation:
enabled: true enabled: true
authenticatorSecretName: "ums-opendesk-portal-server-central-navigation" authenticatorSecretName: "ums-opendesk-portal-server-central-navigation"
ingress:
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusUdmRestApi:
ingress:
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }}
# NOTE: disabled until the next update.
nubusProvisioning: nubusProvisioning:
enabled: false
nubusUdmListener:
enabled: false
nubusSelfServiceListener:
enabled: true enabled: true
selfserviceListener:
umcAdminUser: "default.admin" nubusUdmListener:
enabled: true
nubusSelfServiceListener:
enabled: false
nubusSelfServiceConsumer:
enabled: true
# Nubus services # Nubus services
nubusStackDataUms: nubusStackDataUms:
additionalAnnotations:
argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "HookSucceeded"
stackDataContext: stackDataContext:
umcPostgresqlHostname: {{ .Values.databases.umsSelfservice.host | quote }} umcPostgresqlHostname: {{ .Values.databases.umsSelfservice.host | quote }}
umcPostgresqlUsername: {{ .Values.databases.umsSelfservice.username | quote }} umcPostgresqlUsername: {{ .Values.databases.umsSelfservice.username | quote }}
@@ -205,27 +359,16 @@ nubusStackDataUms:
umcMemcachedUsername: "" umcMemcachedUsername: ""
externalMailDomain: {{ .Values.global.mailDomain | default .Values.global.domain }} externalMailDomain: {{ .Values.global.mailDomain | default .Values.global.domain }}
umcHtmlTitle: "openDesk Portal" umcHtmlTitle: "openDesk Portal"
installUmcPolicies: true smtpHost: {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
nubusUmcServer: smtpPort: 25
memcached: smtpUser: ""
auth: smtpStartTls: false
username: ""
# TODO: Remove values when upstreaming fixes
nubusStackDataSwp:
stackDataContext:
ldapSearchUsers:
{{- range $username, $password := .Values.secrets.nubus.ldapSearch }}
- username: {{ printf "ldapsearch_%s" $username | quote }}
password: {{ $password | quote }}
lastname: "LDAP-Search-User"
{{- end }}
externalMailDomain: {{ .Values.global.mailDomain | default .Values.global.domain }}
smtpHost: {{ .Values.smtp.host | quote }}
smtpPort: {{ .Values.smtp.port | quote }}
smtpUser: {{ .Values.smtp.username | quote }}
ldapBase: {{ .Values.ldap.baseDn }} ldapBase: {{ .Values.ldap.baseDn }}
# FIXME: Should be templated correctly in the future templateContext:
# creates the default.user and default.admin
loadDevData: true
portalHeaderLogo: {{ toYaml .Values.theme.imagery.logoHeaderSvgB64 | quote }}
portalTiles: {{ toYaml .Values.theme.portalTiles | nindent 6 }}
portalRealtimeCollaborationLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.element .Values.global.domain }} portalRealtimeCollaborationLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.element .Values.global.domain }}
portalRealtimeVideoconferenceLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.jitsi .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 }} portalManagementProjectLinkBase: {{ printf "https://%s.%s" .Values.global.hosts.openproject .Values.global.domain }}
@@ -235,6 +378,49 @@ nubusStackDataSwp:
portalTitleDE: "openDesk Portal" portalTitleDE: "openDesk Portal"
portalTitleEN: "openDesk Portal" portalTitleEN: "openDesk Portal"
oxDefaultContext: "1" 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 }}'
portaltileGroupVideoconference:
- 'cn=managed-by-attribute-Videoconference,cn=groups,{{ .Values.ldap.baseDn }}'
systemInformation:
releaseVersion: "Release: {{ .Values.global.systemInformation.releaseVersion }}"
{{- if .Values.functional.admin.portal.deploymentTimestamp.enabled }}
deployDate: "Deployed: {{ now | date "2006-01-02T15:04:05-0700" }}"
{{- else }}
deployDate: false
{{- end }}
# In openDesk the external memcache does not expect a username to be set. Overwriting
# the default username of `selfservice` is part of the customizing:
nubusUmcServer:
memcached:
auth:
username: ""
nubusUmcServer: nubusUmcServer:
postgresql: postgresql:
@@ -258,12 +444,26 @@ nubusUmcServer:
smtp: smtp:
credentialSecret: credentialSecret:
name: "ums-umc-server-smtp-credentials-custom" name: "ums-umc-server-smtp-credentials-custom"
ingress:
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusUmcGateway: nubusUmcGateway:
umcGateway: umcGateway:
umcHtmlTitle: "openDesk Portal" umcHtmlTitle: "openDesk Portal"
ingress:
certManager:
enabled: false
tls:
enabled: {{ .Values.ingress.tls.enabled }}
secretName: {{ .Values.ingress.tls.secretName | quote }}
nubusKeycloakBootstrap: nubusKeycloakBootstrap:
additionalAnnotations:
argocd.argoproj.io/hook: "Sync"
keycloak: keycloak:
auth: auth:
username: "kcadmin" username: "kcadmin"
@@ -277,6 +477,11 @@ nubusKeycloakBootstrap:
twoFactorAuthentication: twoFactorAuthentication:
enabled: true enabled: true
group: "2fa-users" 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 # Credential secrets for accessing customer supplied services
extraSecrets: extraSecrets:
@@ -309,15 +514,14 @@ extraSecrets:
umcKeycloakExtensionsDatabasePassword: {{ .Values.databases.keycloakExtension.password | default .Values.secrets.postgresql.keycloakExtensionUser | quote }} umcKeycloakExtensionsDatabasePassword: {{ .Values.databases.keycloakExtension.password | default .Values.secrets.postgresql.keycloakExtensionUser | quote }}
- name: "ums-keycloak-extensions-smtp-opendesk-credentials" - name: "ums-keycloak-extensions-smtp-opendesk-credentials"
stringData: stringData:
umcKeycloakExtensionsSmtpPassword: {{ .Values.smtp.password | quote }} umcKeycloakExtensionsSmtpPassword: ""
- name: "ums-portal-server-minio-opendesk-credentials" - name: "ums-keycloak-bootstrap-ldap-opendesk-credentials"
stringData: stringData:
access-key-id: {{ .Values.objectstores.nubus.username | quote }} password: {{ .Values.secrets.nubus.ldapSearch.keycloak | quote }}
secret-key-id: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }} - name: "ums-portal-server-minio-opendesk-credentials"
- name: "ums-portal-listener-minio-opendesk-credentials"
stringData: stringData:
access-key-id: {{ .Values.objectstores.nubus.username | quote }} access-key-id: {{ .Values.objectstores.nubus.username | quote }}
secret-key-id: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }} secret-key-id: {{ .Values.objectstores.nubus.secretKey | default .Values.secrets.minio.umsUser | quote }}
- name: "ums-umc-server-smtp-credentials-custom" - name: "ums-umc-server-smtp-credentials-custom"
stringData: stringData:
password: {{ .Values.smtp.password | quote }} password: ""

View File

@@ -1,35 +1,130 @@
# SPDX-FileCopyrightText: 2024 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-License-Identifier: Apache-2.0
*/}}
--- ---
keycloak: keycloak:
enabled: true enabled: true
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: false
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsKeycloak | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak" intents.otterize.com/service-name: "ums-keycloak"
replicaCount: {{ .Values.replicas.keycloak }} replicaCount: {{ .Values.replicas.keycloak }}
resources: resources:
{{ .Values.resources.umsKeycloak | toYaml | nindent 4 }} {{ .Values.resources.umsKeycloak | toYaml | nindent 4 }}
guardian: nubusGuardian:
authorizationApi: authorizationApi:
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-guardian-authorization-api" intents.otterize.com/service-name: "ums-guardian-authorization-api"
podSecurityContext:
fsGroup: 1000
fsGroupChangePolicy: "Always"
replicaCount: {{ .Values.replicas.umsGuardianAuthorizationApi }}
resources: resources:
{{ .Values.resources.umsGuardianAuthorizationApi | toYaml | nindent 6 }} {{ .Values.resources.umsGuardianAuthorizationApi | toYaml | nindent 6 }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianAuthorizationApi | toYaml | nindent 8 }}
managementApi: managementApi:
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-guardian-management-api" intents.otterize.com/service-name: "ums-guardian-management-api"
podSecurityContext:
fsGroup: 1000
fsGroupChangePolicy: "Always"
replicaCount: {{ .Values.replicas.umsGuardianManagementApi }}
resources: resources:
{{ .Values.resources.umsGuardianManagementApi | toYaml | nindent 6 }} {{ .Values.resources.umsGuardianManagementApi | toYaml | nindent 6 }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianManagementApi | toYaml | nindent 8 }}
managementUi: managementUi:
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-guardian-management-ui" intents.otterize.com/service-name: "ums-guardian-management-ui"
replicaCount: {{ .Values.replicas.umsGuardianManagementUi }}
resources: resources:
{{ .Values.resources.umsGuardianManagementUi | toYaml | nindent 6 }}# {{ .Values.resources.umsGuardianManagementUi | toYaml | nindent 6 }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianManagementUi | toYaml | nindent 8 }}
openPolicyAgent: openPolicyAgent:
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
podSecurityContext:
fsGroup: 1000
fsGroupChangePolicy: "Always"
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-ums-open-policy-agent" intents.otterize.com/service-name: "ums-ums-open-policy-agent"
replicaCount: {{ .Values.replicas.umsGuardianOpenPolicyAgent }}
resources: resources:
{{ .Values.resources.umsOpenPolicyAgent | toYaml | nindent 6 }} {{ .Values.resources.umsOpenPolicyAgent | toYaml | nindent 6 }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: RuntimeDefault
seLinuxOptions:
{{ .Values.seLinuxOptions.umsGuardianOpenPolicyAgent | toYaml | nindent 8 }}
provisioning: provisioning:
# Using openDesk keycloak provisioning # Using openDesk keycloak provisioning
enabled: false enabled: false
@@ -37,9 +132,24 @@ guardian:
nubusNotificationsApi: nubusNotificationsApi:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-notifications-api" intents.otterize.com/service-name: "ums-notifications-api"
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsNotificationsApi | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
serviceAccount: serviceAccount:
annotations: create: true
intended.usage: "compliance"
replicaCount: {{ .Values.replicas.umsNotificationsApi }} replicaCount: {{ .Values.replicas.umsNotificationsApi }}
resources: resources:
{{ .Values.resources.umsNotificationsApi | toYaml | nindent 4 }} {{ .Values.resources.umsNotificationsApi | toYaml | nindent 4 }}
@@ -47,7 +157,67 @@ nubusNotificationsApi:
nubusUmcServer: nubusUmcServer:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-umc-server" intents.otterize.com/service-name: "ums-umc-server"
containerSecurityContext:
enabled: true
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
runAsUser: 0
runAsGroup: 0
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: false
seLinuxOptions:
{{ .Values.seLinuxOptions.umsUmcServer | toYaml | nindent 6 }}
containerSecurityContextInit:
enabled: true
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
runAsUser: 0
runAsGroup: 0
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: false
seLinuxOptions:
{{ .Values.seLinuxOptions.umsUmcServer | toYaml | nindent 6 }}
containerSecurityContextSssd:
enabled: true
allowPrivilegeEscalation: true
capabilities:
drop:
- "ALL"
add:
- "DAC_OVERRIDE"
- "SETGID"
- "AUDIT_WRITE"
- "SETUID"
- "CHOWN"
- "SETPCAP"
- "FOWNER"
- "FSETID"
- "KILL"
- "MKNOD"
- "NET_BIND_SERVICE"
- "SYS_CHROOT"
runAsUser: 0
runAsGroup: 0
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: false
seLinuxOptions:
{{ .Values.seLinuxOptions.umsUmcServer | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
proxy:
replicaCount: {{ .Values.replicas.umsUmcServerProxy }}
replicaCount: {{ .Values.replicas.umsUmcServer }} replicaCount: {{ .Values.replicas.umsUmcServer }}
resources: resources:
{{ .Values.resources.umsUmcServer | toYaml | nindent 4 }} {{ .Values.resources.umsUmcServer | toYaml | nindent 4 }}
selfService: selfService:
@@ -69,39 +239,118 @@ nubusUmcServer:
nubusKeycloakExtensions: nubusKeycloakExtensions:
handler: handler:
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
replicaCount: {{ .Values.replicas.umsKeycloakExtensionsHandler }} replicaCount: {{ .Values.replicas.umsKeycloakExtensionsHandler }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-extensions-handler" intents.otterize.com/service-name: "ums-keycloak-extensions-handler"
resources: resources:
{{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 6 }} {{ .Values.resources.umsKeycloakExtensionHandler | toYaml | nindent 6 }}
securityContext:
seccompProfile:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.umsKeycloakExtensionHandler | toYaml | nindent 8 }}
proxy: proxy:
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
replicaCount: {{ .Values.replicas.umsKeycloakExtensionsProxy }} replicaCount: {{ .Values.replicas.umsKeycloakExtensionsProxy }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-extensions-proxy" intents.otterize.com/service-name: "ums-keycloak-extensions-proxy"
resources: resources:
{{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 6 }} {{ .Values.resources.umsKeycloakExtensionProxy | toYaml | nindent 6 }}
securityContext:
seccompProfile:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.umsKeycloakExtensionHandler | toYaml | nindent 8 }}
nubusPortalListener: nubusPortalConsumer:
portalConsumer:
image:
pullSecrets:
{{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }}
{{- end }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-portal-listener" intents.otterize.com/service-name: "ums-portal-consumer"
replicaCount: {{ .Values.replicas.umsPortalListener }} replicaCount: {{ .Values.replicas.umsPortalConsumer }}
resources: resources:
{{ .Values.resources.umsPortalListener | toYaml | nindent 4 }} {{ .Values.resources.umsPortalConsumer | toYaml | nindent 4 }}
resourcesWaitForDependency:
{{ .Values.resources.umsPortalConsumerDependencies | toYaml | nindent 4 }}
persistence: persistence:
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
size: {{ .Values.persistence.size.nubus.portalListener | quote }} size: {{ .Values.persistence.size.nubus.portalConsumer | quote }}
securityContext:
seccompProfile:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.umsPortalConsumer | toYaml | nindent 6 }}
nubusUdmListener:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 102
runAsGroup: 65534
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsUdmListener | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
replicaCount: {{ .Values.replicas.umsUdmListener }}
resources:
{{ .Values.resources.umsUdmListener | toYaml | nindent 4 }}
nubusPortalServer: nubusPortalServer:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-portal-server" intents.otterize.com/service-name: "ums-portal-server"
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsPortalServer | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
serviceAccount: serviceAccount:
annotations: create: true
intended.usage: "compliance"
replicaCount: {{ .Values.replicas.umsPortalServer }} replicaCount: {{ .Values.replicas.umsPortalServer }}
resources: resources:
{{ .Values.resources.umsPortalServer | toYaml | nindent 4 }} {{ .Values.resources.umsPortalServer | toYaml | nindent 4 }}
nubusLdapNotifier: nubusLdapNotifier:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 101
runAsGroup: 102
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsLdapNotifier | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-ldap-notifier" intents.otterize.com/service-name: "ums-ldap-notifier"
replicaCount: {{ .Values.replicas.umsLdapNotifier }} replicaCount: {{ .Values.replicas.umsLdapNotifier }}
@@ -109,23 +358,95 @@ nubusLdapNotifier:
{{ .Values.resources.umsLdapNotifier | toYaml | nindent 4 }} {{ .Values.resources.umsLdapNotifier | toYaml | nindent 4 }}
nubusLdapServer: nubusLdapServer:
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
highAvailabilityMode: false
replicaCountPrimary: 1
replicaCountSecondary: 0 # {{ .Values.replicas.umsLdapServerSecondary }}
replicaCountProxy: 0 # {{ .Values.replicas.umsLdapServerProxy }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-ldap-server" intents.otterize.com/service-name: "ums-ldap-server"
serviceAccount: serviceAccount:
annotations: create: true
intended.usage: "compliance"
initResources: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }} initResources: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }}
resources: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }} resources: {{ .Values.resources.umsLdapServer | toYaml | nindent 4 }}
persistence: persistence:
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
size: {{ .Values.persistence.size.nubus.ldapServerData | quote }} size: {{ .Values.persistence.size.nubus.ldapServerData | quote }}
extraVolumes:
- name: "migration-scripts"
secret:
secretName: "ums-ldap-server-migration"
defaultMode: 0555
extraVolumeMounts:
- name: "migration-scripts"
mountPath: "/entrypoint.d/30-purge.sh"
subPath: "30-purge.sh"
- name: "migration-scripts"
mountPath: "/entrypoint.d/95-slapadd-24-ldiff.sh"
subPath: "95-slapadd-24-ldif.sh"
extraSecrets:
- name: "ums-ldap-server-migration"
stringData:
30-purge.sh: |
#!/usr/bin/env bash
me=$(basename "$0")
echo "- Running ${me}"
if [ -f /var/lib/univention-ldap/ldap-24-export.ldif ]; then
echo "- Cleaning up /var/lib/univention-ldap."
cd /var/lib/univention-ldap
rm -rf internal
rm -rf ldap
ls -l
else
echo "- File /var/lib/univention-ldap/ldap-24-export.ldif not found."
fi
95-slapadd-24-ldif.sh: |
#!/usr/bin/env bash
me=$(basename "$0")
echo "- Running ${me}"
ls -l /var/lib/univention-ldap
if [ -f /var/lib/univention-ldap/ldap-24-export.ldif ]; then
echo "- slapadd-ing /var/lib/univention-ldap/ldap-24-export.ldif"
ls -l /var/lib/univention-ldap/
rm -rf /var/lib/univention-ldap/ldap
rm -rf /var/lib/univention-ldap/internal
echo "- deleted /var/lib/univention-ldap/ldap and /var/lib/univention-ldap/internal"
ls -l /var/lib/univention-ldap/
mkdir /var/lib/univention-ldap/ldap
mkdir /var/lib/univention-ldap/internal
echo "- created /var/lib/univention-ldap/ldap and /var/lib/univention-ldap/internal"
ls -l /var/lib/univention-ldap/
/usr/sbin/slapadd -v -l /var/lib/univention-ldap/ldap-24-export.ldif
echo "- slapadd executed"
ls -l /var/lib/univention-ldap/
mv /var/lib/univention-ldap/ldap-24-export.ldif /var/lib/univention-ldap/ldap-24-export.ldif-imported
echo "- import file renamed"
ls -l /var/lib/univention-ldap/
else
echo "- File /var/lib/univention-ldap/ldap-24-export.ldif not found."
fi
nubusPortalFrontend: nubusPortalFrontend:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-portal-frontend" intents.otterize.com/service-name: "ums-portal-frontend"
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsPortalFrontend | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
serviceAccount: serviceAccount:
annotations: create: true
intended.usage: "compliance"
replicaCount: {{ .Values.replicas.umsPortalFrontend }} replicaCount: {{ .Values.replicas.umsPortalFrontend }}
resources: resources:
{{ .Values.resources.umsPortalFrontend | toYaml | nindent 4 }} {{ .Values.resources.umsPortalFrontend | toYaml | nindent 4 }}
@@ -137,27 +458,69 @@ nubusPortalFrontend:
backgroundImage: {{ .Values.theme.imagery.logoPortalBackgroundSvgB64 | toJson }} backgroundImage: {{ .Values.theme.imagery.logoPortalBackgroundSvgB64 | toJson }}
nubusStackDataUms: nubusStackDataUms:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsStackDataUms | toYaml | nindent 6 }}
pullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-stack-data-ums" intents.otterize.com/service-name: "ums-stack-data-ums"
resources: resources:
{{ .Values.resources.umsStackDataUms | toYaml | nindent 4 }} {{ .Values.resources.umsStackDataUms | toYaml | nindent 4 }}
nubusStackDataSwp: nubusSelfServiceConsumer:
additionalAnnotations: containerSecurityContext:
intents.otterize.com/service-name: "ums-stack-data-swp" allowPrivilegeEscalation: false
resources: capabilities:
{{ .Values.resources.umsStackDataSwp | toYaml | nindent 4 }} drop:
- "ALL"
nubusSelfServiceListener: enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsSelfserviceConsumer | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-selfservice-listener" intents.otterize.com/service-name: "ums-selfservice-listener"
resources: resources:
{{ .Values.resources.umsSelfserviceListener | toYaml | nindent 4 }} {{ .Values.resources.umsSelfserviceConsumer | toYaml | nindent 4 }}
replicaCount: {{ .Values.replicas.umsSelfserviceListener }} replicaCount: {{ .Values.replicas.umsSelfserviceConsumer }}
nubusUdmRestApi: nubusUdmRestApi:
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-udm-rest-api" intents.otterize.com/service-name: "ums-udm-rest-api"
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsUdmRestApi | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
serviceAccount: serviceAccount:
annotations: annotations:
intended.usage: "compliance" intended.usage: "compliance"
@@ -168,20 +531,43 @@ nubusUdmRestApi:
replicaCount: {{ .Values.replicas.umsUdmRestApi }} replicaCount: {{ .Values.replicas.umsUdmRestApi }}
nubusUmcGateway: nubusUmcGateway:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsUmcGateway | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
replicaCount: {{ .Values.replicas.umsUmcGateway }} replicaCount: {{ .Values.replicas.umsUmcGateway }}
resources: resources:
{{ .Values.resources.umsUmcGateway | toYaml | nindent 4 }} {{ .Values.resources.umsUmcGateway | toYaml | nindent 4 }}
extraVolumes:
- name: "entrypoint-swp-patches"
configMap:
name: "ums-stack-data-swp-umc-gateway-entrypoint"
defaultMode: 0555
extraVolumeMounts:
- name: "entrypoint-swp-patches"
mountPath: "/entrypoint.d/90-swp.sh"
subPath: "90-swp.sh"
nubusKeycloakBootstrap: nubusKeycloakBootstrap:
containerSecurityContext:
enabled: true
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
readOnlyRootFilesystem: false
runAsGroup: 1000
runAsNonRoot: true
runAsUser: 1000
seccompProfile:
type: "RuntimeDefault"
seLinuxOptions:
{{ .Values.seLinuxOptions.umsKeycloakBootstrap | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-bootstrap" intents.otterize.com/service-name: "ums-keycloak-bootstrap"
serviceAccount: serviceAccount:
@@ -191,39 +577,81 @@ nubusKeycloakBootstrap:
{{ .Values.resources.umsKeycloakBootstrap | toYaml | nindent 4 }} {{ .Values.resources.umsKeycloakBootstrap | toYaml | nindent 4 }}
nubusProvisioning: nubusProvisioning:
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsProvisioning | toYaml | nindent 6 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
replicaCount:
dispatcher: {{ .Values.replicas.umsProvisioningDispatcher }}
udmTransformer: {{ .Values.replicas.umsProvisioningUdmTransformer }}
prefill: {{ .Values.replicas.umsProvisioningPrefill }}
api: {{ .Values.replicas.umsProvisioningApi }}
serviceAccount: serviceAccount:
annotations: create: true
intended.usage: "compliance"
nats: nats:
config:
cluster:
replicas: {{ .Values.replicas.umsProvisioningNats }}
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
enabled: true
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.umsProvisioningNats | toYaml | nindent 8 }}
imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 6 }}
persistence:
size: {{ .Values.persistence.size.nubus.provisioningNats }}
resources: resources:
{{ .Values.resources.nubusProvisioning.nats | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningNats | toYaml | nindent 6 }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-nats" intents.otterize.com/service-name: "ums-provisioning-nats"
serviceAccount: serviceAccount:
annotations: create: true
intended.usage: "compliance"
api: api:
resources: resources:
{{ .Values.resources.nubusProvisioning.api | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningApi | toYaml | nindent 6 }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-api" intents.otterize.com/service-name: "ums-provisioning-api"
dispatcher: dispatcher:
resources: resources:
{{ .Values.resources.nubusProvisioning.dispatcher | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningDispatcher | toYaml | nindent 6 }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-dispatcher" intents.otterize.com/service-name: "ums-provisioning-dispatcher"
prefill: prefill:
resources: resources:
{{ .Values.resources.nubusProvisioning.prefill | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningPrefill | toYaml | nindent 6 }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-prefill" intents.otterize.com/service-name: "ums-provisioning-prefill"
registerConsumers: registerConsumers:
resources:
{{ .Values.resources.nubusProvisioning.registerConsumers | toYaml | nindent 6 }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-register-consumers" intents.otterize.com/service-name: "ums-provisioning-register-consumers"
udmTransformer: udmTransformer:
resources: resources:
{{ .Values.resources.nubusProvisioning.udmTransformer | toYaml | nindent 6 }} {{ .Values.resources.umsProvisioningUdmTransformer | toYaml | nindent 6 }}
additionalAnnotations: additionalAnnotations:
intents.otterize.com/service-name: "ums-provisioning-udm-transformer" intents.otterize.com/service-name: "ums-provisioning-udm-transformer"
resources:
registerConsumers:
{{ .Values.resources.umsProvisioningRegisterConsumers | toYaml | nindent 6 }}

View File

@@ -1,241 +1,260 @@
# SPDX-FileCopyrightText: 2024 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-License-Identifier: Apache-2.0
*/}}
--- ---
global:
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
keycloak: keycloak:
image: image:
registry: {{ .Values.images.nubusKeycloak.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloak.registry | quote }}
repository: {{ .Values.images.nubusKeycloak.repository }} repository: {{ .Values.images.nubusKeycloak.repository }}
tag: {{ .Values.images.nubusKeycloak.tag }} tag: {{ .Values.images.nubusKeycloak.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusKeycloakBootstrap: nubusKeycloakBootstrap:
image: image:
registry: {{ .Values.images.nubusKeycloakBootstrap.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakBootstrap.registry | quote }}
repository: {{ .Values.images.nubusKeycloakBootstrap.repository }} repository: {{ .Values.images.nubusKeycloakBootstrap.repository }}
tag: {{ .Values.images.nubusKeycloakBootstrap.tag }} tag: {{ .Values.images.nubusKeycloakBootstrap.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusKeycloakExtensions: nubusKeycloakExtensions:
handler: handler:
image: image:
registry: {{ .Values.images.nubusKeycloakExtensionHandler.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakExtensionHandler.registry | quote }}
repository: {{ .Values.images.nubusKeycloakExtensionHandler.repository }} repository: {{ .Values.images.nubusKeycloakExtensionHandler.repository }}
tag: {{ .Values.images.nubusKeycloakExtensionHandler.tag }} tag: {{ .Values.images.nubusKeycloakExtensionHandler.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
proxy: proxy:
image: image:
registry: {{ .Values.images.nubusKeycloakExtensionProxy.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusKeycloakExtensionProxy.registry | quote }}
repository: {{ .Values.images.nubusKeycloakExtensionProxy.repository }} repository: {{ .Values.images.nubusKeycloakExtensionProxy.repository }}
tag: {{ .Values.images.nubusKeycloakExtensionProxy.tag }} tag: {{ .Values.images.nubusKeycloakExtensionProxy.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusLdapNotifier: nubusLdapNotifier:
image: image:
registry: {{ .Values.images.nubusLdapNotifier.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusLdapNotifier.registry | quote }}
repository: {{ .Values.images.nubusLdapNotifier.repository }} repository: {{ .Values.images.nubusLdapNotifier.repository }}
tag: {{ .Values.images.nubusLdapNotifier.tag }} tag: {{ .Values.images.nubusLdapNotifier.tag }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusLdapServer: nubusLdapServer:
ldapServer: ldapServer:
image: image:
registry: {{ .Values.images.nubusLdapServer.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusLdapServer.registry | quote }}
repository: {{ .Values.images.nubusLdapServer.repository }} repository: {{ .Values.images.nubusLdapServer.repository }}
tag: {{ .Values.images.nubusLdapServer.tag }} tag: {{ .Values.images.nubusLdapServer.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
dhInitcontainer: dhInitcontainer:
image: image:
registry: {{ .Values.images.nubusLdapServerDhInitContainer.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusLdapServerDhInitContainer.registry | quote }}
repository: {{ .Values.images.nubusLdapServerDhInitContainer.repository }} repository: {{ .Values.images.nubusLdapServerDhInitContainer.repository }}
tag: {{ .Values.images.nubusLdapServerDhInitContainer.tag }} tag: {{ .Values.images.nubusLdapServerDhInitContainer.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
waitForDependency: waitForDependency:
image: image:
registry: {{ .Values.images.nubusWaitForDependency.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
repository: {{ .Values.images.nubusWaitForDependency.repository }} repository: {{ .Values.images.nubusWaitForDependency.repository }}
tag: {{ .Values.images.nubusWaitForDependency.tag }} tag: {{ .Values.images.nubusWaitForDependency.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
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 }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
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 }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusPortalConsumer: nubusPortalConsumer:
portalConsumer: portalConsumer:
image: image:
registry: {{ .Values.images.nubusPortalConsumer.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusPortalConsumer.registry | quote }}
repository: {{ .Values.images.nubusPortalConsumer.repository }} repository: {{ .Values.images.nubusPortalConsumer.repository }}
tag: {{ .Values.images.nubusPortalConsumer.tag }} tag: {{ .Values.images.nubusPortalConsumer.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusNotificationsApi:
image:
registry: {{ .Values.images.nubusNotificationsApi.registry }}
repository: {{ .Values.images.nubusNotificationsApi.repository }}
tag: {{ .Values.images.nubusNotificationsApi.tag }}
nubusPortalFrontend:
image:
registry: {{ .Values.images.nubusPortalFrontend.registry }}
repository: {{ .Values.images.nubusPortalFrontend.repository }}
tag: {{ .Values.images.nubusPortalFrontend.tag }}
nubusPortalListener:
image:
registry: {{ .Values.images.nubusPortalListener.registry }}
repository: {{ .Values.images.nubusPortalListener.repository }}
tag: {{ .Values.images.nubusPortalListener.tag }}
waitForDependency: waitForDependency:
image: image:
registry: {{ .Values.images.nubusWaitForDependency.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
repository: {{ .Values.images.nubusWaitForDependency.repository }} repository: {{ .Values.images.nubusWaitForDependency.repository }}
tag: {{ .Values.images.nubusWaitForDependency.tag }} tag: {{ .Values.images.nubusWaitForDependency.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusPortalServer: nubusPortalServer:
image: image:
registry: {{ .Values.images.nubusPortalServer.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusPortalServer.registry | quote }}
repository: {{ .Values.images.nubusPortalServer.repository }} repository: {{ .Values.images.nubusPortalServer.repository }}
tag: {{ .Values.images.nubusPortalServer.tag }} tag: {{ .Values.images.nubusPortalServer.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusProvisioning: nubusProvisioning:
api: api:
image: image:
registry: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningEventsAndConsumerApi.registry | quote }}
repository: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.repository }} repository: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.repository }}
tag: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.tag }} tag: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
dispatcher: dispatcher:
image: image:
registry: {{ .Values.images.nubusProvisioningDispatcher.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningDispatcher.registry | quote }}
repository: {{ .Values.images.nubusProvisioningDispatcher.repository }} repository: {{ .Values.images.nubusProvisioningDispatcher.repository }}
tag: {{ .Values.images.nubusProvisioningDispatcher.tag }} tag: {{ .Values.images.nubusProvisioningDispatcher.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
udmTransformer: udmTransformer:
image: image:
registry: {{ .Values.images.nubusProvisioningUdmTransformer.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningUdmTransformer.registry | quote }}
repository: {{ .Values.images.nubusProvisioningUdmTransformer.repository }} repository: {{ .Values.images.nubusProvisioningUdmTransformer.repository }}
tag: {{ .Values.images.nubusProvisioningUdmTransformer.tag }} tag: {{ .Values.images.nubusProvisioningUdmTransformer.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
prefill: prefill:
image: image:
registry: {{ .Values.images.nubusProvisioningPrefill.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningPrefill.registry | quote }}
repository: {{ .Values.images.nubusProvisioningPrefill.repository }} repository: {{ .Values.images.nubusProvisioningPrefill.repository }}
tag: {{ .Values.images.nubusProvisioningPrefill.tag }} tag: {{ .Values.images.nubusProvisioningPrefill.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
registerConsumers: registerConsumers:
image: image:
registry: {{ .Values.images.nubusWaitForDependency.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
repository: {{ .Values.images.nubusWaitForDependency.repository }} repository: {{ .Values.images.nubusWaitForDependency.repository }}
tag: {{ .Values.images.nubusWaitForDependency.tag }} tag: {{ .Values.images.nubusWaitForDependency.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nats: nats:
nats: nats:
image: image:
registry: {{ .Values.images.nubusNats.registry }} registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNats.registry | quote }}
repository: {{ .Values.images.nubusNats.repository }} repository: {{ .Values.images.nubusNats.repository }}
tag: {{ .Values.images.nubusNats.tag }} tag: {{ .Values.images.nubusNats.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
reloader: reloader:
image: image:
registry: {{ .Values.images.nubusNatsReloader.registry }} registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNatsReloader.registry | quote }}
repository: {{ .Values.images.nubusNatsReloader.repository }} repository: {{ .Values.images.nubusNatsReloader.repository }}
tag: {{ .Values.images.nubusNatsReloader.tag }} tag: {{ .Values.images.nubusNatsReloader.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
natsBox: natsBox:
image: image:
registry: {{ .Values.images.nubusNatsBox.registry }} registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusNatsBox.registry | quote }}
repository: {{ .Values.images.nubusNatsBox.repository }} repository: {{ .Values.images.nubusNatsBox.repository }}
tag: {{ .Values.images.nubusNatsBox.tag }} tag: {{ .Values.images.nubusNatsBox.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusProvisioningEventsAndConsumerApi: nubusProvisioningEventsAndConsumerApi:
image: image:
registry: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningEventsAndConsumerApi.registry | quote }}
repository: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.repository }} repository: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.repository }}
tag: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.tag }} tag: {{ .Values.images.nubusProvisioningEventsAndConsumerApi.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusProvisioningPrefill: nubusProvisioningPrefill:
image: image:
registry: {{ .Values.images.nubusProvisioningPrefill.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningPrefill.registry | quote }}
repository: {{ .Values.images.nubusProvisioningPrefill.repository }} repository: {{ .Values.images.nubusProvisioningPrefill.repository }}
tag: {{ .Values.images.nubusProvisioningPrefill.tag }} tag: {{ .Values.images.nubusProvisioningPrefill.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusUdmListener: nubusUdmListener:
image: image:
registry: {{ .Values.images.nubusProvisioningUdmListener.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusProvisioningUdmListener.registry | quote }}
repository: {{ .Values.images.nubusProvisioningUdmListener.repository }} repository: {{ .Values.images.nubusProvisioningUdmListener.repository }}
tag: {{ .Values.images.nubusProvisioningUdmListener.tag }} tag: {{ .Values.images.nubusProvisioningUdmListener.tag }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusSelfServiceListener: nubusSelfServiceConsumer:
selfserviceListener: image:
image: registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusSelfServiceConsumer.registry | quote }}
registry: {{ .Values.images.nubusSelfserviceListener.registry }} repository: {{ .Values.images.nubusSelfServiceConsumer.repository }}
repository: {{ .Values.images.nubusSelfserviceListener.repository }} tag: {{ .Values.images.nubusSelfServiceConsumer.tag }}
tag: {{ .Values.images.nubusSelfserviceListener.tag }} imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
selfserviceInvitation:
image:
registry: {{ .Values.images.nubusSelfserviceInvitation.registry }}
repository: {{ .Values.images.nubusSelfserviceInvitation.repository }}
tag: {{ .Values.images.nubusSelfserviceInvitation.tag }}
waitForDependency: waitForDependency:
image: image:
registry: {{ .Values.images.nubusWaitForDependency.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
repository: {{ .Values.images.nubusWaitForDependency.repository }} repository: {{ .Values.images.nubusWaitForDependency.repository }}
tag: {{ .Values.images.nubusWaitForDependency.tag }} tag: {{ .Values.images.nubusWaitForDependency.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusUdmRestApi: nubusUdmRestApi:
# oxPlugin:
# image:
# registry: \{\{ .Values.images.nubusUdmRestApiOxPlugin.registry }}
# repository: \{\{ .Values.images.nubusUdmRestApiOxPlugin.repository }}
# tag: \{\{ .Values.images.nubusUdmRestApiOxPlugin.tag }}
# portalPlugin:
# image:
# registry: \{\{ .Values.images.nubusUdmRestApiPortalPlugin.registry }}
# repository: \{\{ .Values.images.nubusUdmRestApiPortalPlugin.repository }}
# tag: \{\{ .Values.images.nubusUdmRestApiPortalPlugin.tag }}
udmRestApi: udmRestApi:
image: image:
registry: {{ .Values.images.nubusUdmRestApi.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusUdmRestApi.registry | quote }}
repository: {{ .Values.images.nubusUdmRestApi.repository }} repository: {{ .Values.images.nubusUdmRestApi.repository }}
tag: {{ .Values.images.nubusUdmRestApi.tag }} tag: {{ .Values.images.nubusUdmRestApi.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusUmcGateway: nubusUmcGateway:
image: image:
registry: {{ .Values.images.nubusUmcGateway.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusUmcGateway.registry | quote }}
repository: {{ .Values.images.nubusUmcGateway.repository }} repository: {{ .Values.images.nubusUmcGateway.repository }}
tag: {{ .Values.images.nubusUmcGateway.tag }} tag: {{ .Values.images.nubusUmcGateway.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusUmcServer: nubusUmcServer:
image: image:
registry: {{ .Values.images.nubusUmcServer.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusUmcServer.registry | quote }}
repository: {{ .Values.images.nubusUmcServer.repository }} repository: {{ .Values.images.nubusUmcServer.repository }}
tag: {{ .Values.images.nubusUmcServer.tag }} tag: {{ .Values.images.nubusUmcServer.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
proxy:
image:
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.nubusUmcServerProxy.registry | quote }}
repository: {{ .Values.images.nubusUmcServerProxy.repository }}
tag: {{ .Values.images.nubusUmcServerProxy.tag }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusWaitForDependency: nubusWaitForDependency:
image: image:
registry: {{ .Values.images.nubusWaitForDependency.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusWaitForDependency.registry | quote }}
repository: {{ .Values.images.nubusWaitForDependency.repository }} repository: {{ .Values.images.nubusWaitForDependency.repository }}
tag: {{ .Values.images.nubusWaitForDependency.tag }} tag: {{ .Values.images.nubusWaitForDependency.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusGuardian: nubusGuardian:
provisioning: provisioning:
image: image:
registry: {{ .Values.images.nubusGuardianProvisioning.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianProvisioning.registry | quote }}
repository: {{ .Values.images.nubusGuardianProvisioning.repository }} repository: {{ .Values.images.nubusGuardianProvisioning.repository }}
tag: {{ .Values.images.nubusGuardianProvisioning.tag }} tag: {{ .Values.images.nubusGuardianProvisioning.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
authorizationApi: authorizationApi:
image: image:
registry: {{ .Values.images.nubusGuardianAuthorizationApi.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianAuthorizationApi.registry | quote }}
repository: {{ .Values.images.nubusGuardianAuthorizationApi.repository }} repository: {{ .Values.images.nubusGuardianAuthorizationApi.repository }}
tag: {{ .Values.images.nubusGuardianAuthorizationApi.tag }} tag: {{ .Values.images.nubusGuardianAuthorizationApi.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
managementApi: managementApi:
image: image:
registry: {{ .Values.images.nubusGuardianManagementApi.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianManagementApi.registry | quote }}
repository: {{ .Values.images.nubusGuardianManagementApi.repository }} repository: {{ .Values.images.nubusGuardianManagementApi.repository }}
tag: {{ .Values.images.nubusGuardianManagementApi.tag }} tag: {{ .Values.images.nubusGuardianManagementApi.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
managementUi: managementUi:
image: image:
registry: {{ .Values.images.nubusGuardianManagementUi.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusGuardianManagementUi.registry | quote }}
repository: {{ .Values.images.nubusGuardianManagementUi.repository }} repository: {{ .Values.images.nubusGuardianManagementUi.repository }}
tag: {{ .Values.images.nubusGuardianManagementUi.tag }} tag: {{ .Values.images.nubusGuardianManagementUi.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
openPolicyAgent: openPolicyAgent:
image: image:
registry: {{ .Values.images.nubusOpenPolicyAgent.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusOpenPolicyAgent.registry | quote }}
repository: {{ .Values.images.nubusOpenPolicyAgent.repository }} repository: {{ .Values.images.nubusOpenPolicyAgent.repository }}
tag: {{ .Values.images.nubusOpenPolicyAgent.tag }} tag: {{ .Values.images.nubusOpenPolicyAgent.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
nubusStackDataUms: nubusStackDataUms:
image: image:
registry: {{ .Values.images.nubusDataLoader.registry }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.nubusDataLoader.registry | quote }}
repository: {{ .Values.images.nubusDataLoader.repository }}
tag: {{ .Values.images.nubusDataLoader.tag }}
nubusStackDataSwp:
image:
registry: {{ .Values.images.nubusDataLoader.registry }}
repository: {{ .Values.images.nubusDataLoader.repository }} repository: {{ .Values.images.nubusDataLoader.repository }}
tag: {{ .Values.images.nubusDataLoader.tag }} tag: {{ .Values.images.nubusDataLoader.tag }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}

View File

@@ -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,7 +11,7 @@ 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 }}
@@ -28,7 +28,8 @@ config:
{{ .Values.functional.authentication.oidc.clients | toYaml | nindent 6 }} {{ .Values.functional.authentication.oidc.clients | toYaml | nindent 6 }}
managed: managed:
clientScopes: [ 'acr', 'web-origins', 'email', 'profile', 'microprofile-jwt', 'role_list', 'offline_access', 'roles', 'address', 'phone' ] clientScopes: [ 'acr', 'web-origins', 'email', 'profile', 'microprofile-jwt', 'role_list', 'offline_access', 'roles', 'address', 'phone' ]
clients: [ 'UMC', 'guardian-management-api', 'guardian-scripts', 'guardian-ui', '${client_account}', '${client_account-console}', '${client_admin-cli}', '${client_broker}', '${client_realm-management}', '${client_security-admin-console}' ] # 'guardian-management-api', 'guardian-scripts', 'guardian-ui' clients have been added explicitly for the moment (see further down this file)
clients: [ '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 }}
@@ -388,60 +389,6 @@ config:
backchannel.logout.session.required: false backchannel.logout.session.required: false
defaultClientScopes: defaultClientScopes:
- "opendesk-dovecot-scope" - "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:
- "offline_access"
- name: "opendesk-jitsi" - name: "opendesk-jitsi"
clientId: "opendesk-jitsi" clientId: "opendesk-jitsi"
protocol: "openid-connect" protocol: "openid-connect"
@@ -507,7 +454,7 @@ config:
authorizationServicesEnabled: false authorizationServicesEnabled: false
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 }}/apps/user_oidc/backchannel-logout/opendesk"
post.logout.redirect.uris: "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*" post.logout.redirect.uris: "https://{{ .Values.global.hosts.nextcloud }}.{{ .Values.global.domain }}/*##https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}/*"
defaultClientScopes: defaultClientScopes:
- "opendesk-nextcloud-scope" - "opendesk-nextcloud-scope"
@@ -587,6 +534,10 @@ containerSecurityContext:
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.opendeskKeycloakBootstrap | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.opendeskKeycloakBootstrap | toYaml | nindent 4 }}
additionalAnnotations:
argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation"
podAnnotations: podAnnotations:
intents.otterize.com/service-name: "ums-keycloak-bootstrap" intents.otterize.com/service-name: "ums-keycloak-bootstrap"

View File

@@ -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,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.openXchangeAppSuiteBootstrap.registry }}/\ url: "{{ .Values.global.helmRegistry | default .Values.charts.openXchangeAppSuiteBootstrap.registry }}/{{ .Values.charts.openXchangeAppSuiteBootstrap.repository }}"
{{ .Values.charts.openXchangeAppSuiteBootstrap.repository }}"
# OX Connector
- name: "ox-connector-repo"
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
oci: true
url: "{{ .Values.global.helmRegistry | default .Values.charts.oxConnector.registry }}/{{ .Values.charts.oxConnector.repository }}"
releases: releases:
- name: "dovecot" - name: "dovecot"
@@ -41,6 +45,7 @@ releases:
version: "{{ .Values.charts.dovecot.version }}" version: "{{ .Values.charts.dovecot.version }}"
values: values:
- "values-dovecot.yaml.gotmpl" - "values-dovecot.yaml.gotmpl"
- {{ .Values.customization.release.dovecot | default "additionalValues: false" }}
installed: {{ .Values.dovecot.enabled }} installed: {{ .Values.dovecot.enabled }}
timeout: 900 timeout: 900
@@ -50,6 +55,7 @@ releases:
values: values:
- "values-openxchange.yaml.gotmpl" - "values-openxchange.yaml.gotmpl"
- "values-openxchange-enterprise-contact-picker.yaml.gotmpl" - "values-openxchange-enterprise-contact-picker.yaml.gotmpl"
- {{ .Values.customization.release.openXchange | default "additionalValues: false" }}
installed: {{ .Values.oxAppsuite.enabled }} installed: {{ .Values.oxAppsuite.enabled }}
timeout: 900 timeout: 900
@@ -58,9 +64,20 @@ releases:
version: "{{ .Values.charts.openXchangeAppSuiteBootstrap.version }}" version: "{{ .Values.charts.openXchangeAppSuiteBootstrap.version }}"
values: values:
- "values-openxchange-bootstrap.yaml.gotmpl" - "values-openxchange-bootstrap.yaml.gotmpl"
- {{ .Values.customization.release.opendeskOpenXchangeBootstrap | default "additionalValues: false" }}
installed: {{ .Values.oxAppsuite.enabled }} installed: {{ .Values.oxAppsuite.enabled }}
timeout: 900 timeout: 900
- name: "ox-connector"
chart: "ox-connector-repo/{{ .Values.charts.oxConnector.name }}"
version: "{{ .Values.charts.oxConnector.version }}"
values:
- "values-oxconnector.yaml.gotmpl"
- {{ .Values.customization.release.oxConnector | default "additionalValues: false" }}
installed: {{ .Values.oxAppsuite.enabled }}
needs:
- "open-xchange"
commonLabels: commonLabels:
deploy-stage: "component-1" deploy-stage: "component-1"
component: "open-xchange" component: "open-xchange"

View File

@@ -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 }}
...

View 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 }}
...

View File

@@ -1,22 +1,24 @@
{{/* {{/*
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 }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.global.imagePullSecrets }} {{ .Values.global.imagePullSecrets | toYaml | nindent 2 }}
- name: {{ . | quote }}
{{- end }}
dovecot: dovecot:
mailDomain: {{ .Values.global.mailDomain | default .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 }}
migration:
enabled: {{ .Values.functional.migration.oxAppsuite.enabled }}
masterPassword: {{ .Values.secrets.oxAppsuite.migrationsMasterPassword | quote }}
ldap: ldap:
enabled: true enabled: true
host: {{ .Values.ldap.host | quote }} host: {{ .Values.ldap.host | quote }}
@@ -36,7 +38,7 @@ dovecot:
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 }}
@@ -67,6 +69,9 @@ containerSecurityContext:
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.dovecot | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.dovecot | toYaml | nindent 4 }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 1000 fsGroup: 1000

View File

@@ -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,14 +8,30 @@ cleanup:
deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }} deletePodsOnSuccess: {{ .Values.debug.cleanup.deletePodsOnSuccess }}
deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }} deletePodsOnSuccessTimeout: {{ .Values.debug.cleanup.deletePodsOnSuccessTimeout }}
containerSecurityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- "ALL"
runAsUser: 1000
runAsGroup: 1000
seccompProfile:
type: "RuntimeDefault"
readOnlyRootFilesystem: true
runAsNonRoot: true
seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeBootstrap | toYaml | nindent 4 }}
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 }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.global.imagePullSecrets }} {{ .Values.global.imagePullSecrets | toYaml | nindent 2 }}
- name: {{ . | quote }}
{{- end }} additionalAnnotations:
argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "HookSucceeded"
... ...

View File

@@ -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:

View File

@@ -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,16 @@ 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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.global.imagePullSecrets }} {{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }} - name: {{ . | quote }}
{{- end }} {{- end }}
podAnnotations: {}
replicaCount: {{ .Values.replicas.openxchangeNextcloudIntegrationUI }}
resources: resources:
{{ .Values.resources.openxchangeNextcloudIntegrationUI | toYaml | nindent 4 }} {{ .Values.resources.openxchangeNextcloudIntegrationUI | toYaml | nindent 4 }}
securityContext: securityContext:
@@ -43,17 +47,22 @@ nextcloud-integration-ui:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeNextcloudIntegrationUI | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.openxchangeNextcloudIntegrationUI | toYaml | nindent 6 }}
serviceAccount:
create: false
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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imagePullSecrets: imagePullSecrets:
{{- range .Values.global.imagePullSecrets }} {{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }} - name: {{ . | quote }}
{{- end }} {{- end }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
replicaCount: {{ .Values.replicas.openxchangePublicSectorUI }}
podAnnotations: {}
resources: resources:
{{ .Values.resources.openxchangePublicSectorUI | toYaml | nindent 4 }} {{ .Values.resources.openxchangePublicSectorUI | toYaml | nindent 4 }}
securityContext: securityContext:
@@ -71,6 +80,8 @@ public-sector-ui:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangePublicSectorUI | toYaml | nindent 6 }} {{ .Values.seLinuxOptions.openxchangePublicSectorUI | toYaml | nindent 6 }}
serviceAccount:
create: false
appsuite: appsuite:
appsuite-toolkit: appsuite-toolkit:
@@ -116,6 +127,7 @@ appsuite:
jolokiaLogin: "jolokia" jolokiaLogin: "jolokia"
jolokiaPassword: {{ .Values.secrets.oxAppsuite.jolokiaPassword | quote }} jolokiaPassword: {{ .Values.secrets.oxAppsuite.jolokiaPassword | quote }}
hostname: "{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}" hostname: "{{ .Values.global.hosts.openxchange }}.{{ .Values.global.domain }}"
podAnnotations: {}
serviceAccount: serviceAccount:
create: true create: true
features: features:
@@ -131,9 +143,11 @@ 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 }}
podAnnotations: {}
resources: resources:
{{ .Values.resources.openxchangeGotenberg | toYaml | nindent 8 }} {{ .Values.resources.openxchangeGotenberg | toYaml | nindent 8 }}
securityContext: securityContext:
@@ -151,6 +165,8 @@ appsuite:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeGotenberg | toYaml | nindent 10 }} {{ .Values.seLinuxOptions.openxchangeGotenberg | toYaml | nindent 10 }}
serviceAccount:
create: false
hooks: hooks:
beforeAppsuiteStart: beforeAppsuiteStart:
create-guard-dir.sh: | create-guard-dir.sh: |
@@ -158,9 +174,17 @@ appsuite:
chown open-xchange:open-xchange /opt/open-xchange/guard-files chown open-xchange:open-xchange /opt/open-xchange/guard-files
packages: packages:
status: status:
{{- if .Values.functional.migration.oxAppsuite.enabled }}
open-xchange-authentication-masterpassword: "enabled"
open-xchange-authentication-ldap: "disabled"
open-xchange-authentication-oauth: "disabled"
open-xchange-oidc: "disabled"
{{- else }}
open-xchange-oidc: "enabled" open-xchange-oidc: "enabled"
open-xchange-authentication-database: "disabled" open-xchange-authentication-database: "disabled"
open-xchange-authentication-oauth: "enabled" open-xchange-authentication-oauth: "enabled"
open-xchange-authentication-ldap: "disabled"
{{- end }}
properties: properties:
com.openexchange.UIWebPath: "/appsuite/" com.openexchange.UIWebPath: "/appsuite/"
com.openexchange.showAdmin: "false" com.openexchange.showAdmin: "false"
@@ -211,6 +235,9 @@ appsuite:
com.openexchange.mail.transport.authType: "xoauth2" com.openexchange.mail.transport.authType: "xoauth2"
com.openexchange.mail.transportServer: "postfix" com.openexchange.mail.transportServer: "postfix"
com.openexchange.mail.transportServerSource: "global" com.openexchange.mail.transportServerSource: "global"
# Requirements for OX-Connector
com.openexchange.user.enforceUniqueDisplayName: "false"
com.openexchange.folderstorage.database.preferDisplayName: "false"
# Mailfilter # Mailfilter
com.openexchange.mail.filter.loginType: "global" com.openexchange.mail.filter.loginType: "global"
com.openexchange.mail.filter.credentialSource: "mail" com.openexchange.mail.filter.credentialSource: "mail"
@@ -238,7 +265,7 @@ appsuite:
com.openexchange.mail.secondary.authType: "XOAUTH2" com.openexchange.mail.secondary.authType: "XOAUTH2"
com.openexchange.mail.transport.secondary.authType: "xoauth2" com.openexchange.mail.transport.secondary.authType: "xoauth2"
# Nextcloud integration # Nextcloud integration
com.openexchange.file.storage.nextcloud.oauth.url: "http://opendesk-nextcloud-apache2/" com.openexchange.file.storage.nextcloud.oauth.url: "http://opendesk-nextcloud-aio/"
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 # Element integration
@@ -266,6 +293,8 @@ appsuite:
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 }} com.openexchange.conference.element.authToken: {{ .Values.secrets.oxAppsuite.synapseAsToken | quote }}
propertiesFiles: propertiesFiles:
/opt/open-xchange/etc/masterpassword-authentication.properties:
com.openexchange.authentication.masterpassword.password: {{ .Values.secrets.oxAppsuite.migrationsMasterPassword | quote }}
/opt/open-xchange/etc/AdminDaemon.properties: /opt/open-xchange/etc/AdminDaemon.properties:
MASTER_ACCOUNT_OVERRIDE: "true" MASTER_ACCOUNT_OVERRIDE: "true"
/opt/open-xchange/etc/AdminUser.properties: /opt/open-xchange/etc/AdminUser.properties:
@@ -341,7 +370,7 @@ appsuite:
enabled: true 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 }}
@@ -356,6 +385,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 }}
@@ -366,10 +396,12 @@ 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 }}
podAnnotations: {}
resources: resources:
{{ .Values.resources.openxchangeCoreUI | toYaml | nindent 6 }} {{ .Values.resources.openxchangeCoreUI | toYaml | nindent 6 }}
securityContext: securityContext:
@@ -386,6 +418,8 @@ appsuite:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeCoreUI | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.openxchangeCoreUI | toYaml | nindent 8 }}
serviceAccount:
create: false
core-ui-middleware: core-ui-middleware:
enabled: true enabled: true
@@ -398,12 +432,14 @@ 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: {}
podAnnotations: {}
redis: *redisConfiguration redis: *redisConfiguration
replicaCount: {{ .Values.replicas.openxchangeCoreUIMiddleware }}
resources: resources:
{{ .Values.resources.openxchangeCoreUIMiddleware | toYaml | nindent 6 }} {{ .Values.resources.openxchangeCoreUIMiddleware | toYaml | nindent 6 }}
updater: updater:
@@ -423,6 +459,9 @@ appsuite:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeCoreUIMiddleware | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.openxchangeCoreUIMiddleware | toYaml | nindent 8 }}
serviceAccount:
create: false
core-cacheservice: core-cacheservice:
enabled: false enabled: false
@@ -437,10 +476,13 @@ 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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
podAnnotations: {}
redis: *redisConfiguration redis: *redisConfiguration
replicaCount: {{ .Values.replicas.openxchangeCoreDocumentConverter }}
resources: resources:
{{- .Values.resources.openxchangeCoreDocumentConverter | toYaml | nindent 6 }} {{- .Values.resources.openxchangeCoreDocumentConverter | toYaml | nindent 6 }}
securityContext: securityContext:
@@ -459,6 +501,8 @@ appsuite:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeDocumentConverter | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.openxchangeDocumentConverter | toYaml | nindent 8 }}
serviceAccount:
create: false
core-documents-collaboration: core-documents-collaboration:
enabled: false enabled: false
@@ -482,10 +526,12 @@ 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 }}
podAnnotations: {}
replicaCount: {{ .Values.replicas.openxchangeCoreGuidedtours }}
resources: resources:
{{- .Values.resources.openxchangeCoreGuidedtours | toYaml | nindent 6 }} {{- .Values.resources.openxchangeCoreGuidedtours | toYaml | nindent 6 }}
securityContext: securityContext:
@@ -502,6 +548,8 @@ appsuite:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeCoreGuidedtours | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.openxchangeCoreGuidedtours | toYaml | nindent 8 }}
serviceAccount:
create: false
core-imageconverter: core-imageconverter:
enabled: true enabled: true
@@ -510,16 +558,19 @@ 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 }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
objectCache: objectCache:
s3ObjectStores: s3ObjectStores:
- id: -1 - id: -1
endpoint: "." endpoint: "."
accessKey: "." accessKey: "."
secretKey: "." secretKey: "."
podAnnotations: {}
redis: *redisConfiguration redis: *redisConfiguration
replicaCount: {{ .Values.replicas.openxchangeCoreImageConverter }}
resources: resources:
{{- .Values.resources.openxchangeCoreImageConverter | toYaml | nindent 6 }} {{- .Values.resources.openxchangeCoreImageConverter | toYaml | nindent 6 }}
securityContext: securityContext:
@@ -538,6 +589,8 @@ appsuite:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeImageConverter | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.openxchangeImageConverter | toYaml | nindent 8 }}
serviceAccount:
create: false
guard-ui: guard-ui:
enabled: true enabled: true
@@ -546,10 +599,12 @@ appsuite:
- name: {{ . | quote }} - name: {{ . | quote }}
{{- end }} {{- end }}
image: image:
registry: {{ .Values.global.imageRegistry | default .Values.images.openxchangeGuardUI.registry | quote }} registry: {{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.openxchangeGuardUI.registry | quote }}
repository: {{ .Values.images.openxchangeGuardUI.repository | 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 }}
podAnnotations: {}
replicaCount: {{ .Values.replicas.openxchangeGuardUI }}
resources: resources:
{{- .Values.resources.openxchangeGuardUI | toYaml | nindent 6 }} {{- .Values.resources.openxchangeGuardUI | toYaml | nindent 6 }}
securityContext: securityContext:
@@ -566,13 +621,15 @@ appsuite:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeGuardUI | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.openxchangeGuardUI | toYaml | nindent 8 }}
serviceAccount:
create: false
core-spellcheck: core-spellcheck:
enabled: false enabled: false
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 }}
@@ -580,6 +637,8 @@ appsuite:
{{- range .Values.global.imagePullSecrets }} {{- range .Values.global.imagePullSecrets }}
- name: {{ . | quote }} - name: {{ . | quote }}
{{- end }} {{- end }}
podAnnotations: {}
replicaCount: {{ .Values.replicas.openxchangeCoreUserGuide }}
resources: resources:
{{- .Values.resources.openxchangeCoreUserGuide | toYaml | nindent 6 }} {{- .Values.resources.openxchangeCoreUserGuide | toYaml | nindent 6 }}
securityContext: securityContext:
@@ -596,4 +655,6 @@ appsuite:
type: "RuntimeDefault" type: "RuntimeDefault"
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openxchangeCoreUserGuide | toYaml | nindent 8 }} {{ .Values.seLinuxOptions.openxchangeCoreUserGuide | toYaml | nindent 8 }}
serviceAccount:
create: false
... ...

View File

@@ -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 }}-primary" logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"INFO"{{ end }}
logLevel: {{ if .Values.debug.enabled }}"DEBUG"{{ else }}"WARN"{{ end }}
ldapPassword: {{ .Values.secrets.nubus.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,12 +40,21 @@ 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 }}
persistence: persistence:
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
podAnnotations: {}
## Container deployment probes ## Container deployment probes
probes: probes:
liveness: liveness:
@@ -76,7 +90,6 @@ securityContext:
- "SETUID" - "SETUID"
- "SETPCAP" - "SETPCAP"
- "NET_BIND_SERVICE" - "NET_BIND_SERVICE"
- "NET_RAW"
- "SYS_CHROOT" - "SYS_CHROOT"
privileged: false privileged: false
seccompProfile: seccompProfile:

View File

@@ -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"
@@ -21,6 +20,7 @@ releases:
waitForJobs: true waitForJobs: true
values: values:
- "values.yaml.gotmpl" - "values.yaml.gotmpl"
- {{ .Values.customization.release.opendeskOpenprojectBootstrap | default "additionalValues: false" }}
installed: {{ .Values.openproject.enabled }} installed: {{ .Values.openproject.enabled }}
timeout: 900 timeout: 900

View File

@@ -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 }}
...

View 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 }}
...

View File

@@ -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
*/}} */}}
@@ -15,6 +16,8 @@ cleanup:
keepPVCOnDelete: {{ .Values.debug.cleanup.keepPVCOnDelete }} keepPVCOnDelete: {{ .Values.debug.cleanup.keepPVCOnDelete }}
config: config:
debug:
enabled: {{ .Values.debug.enabled }}
openproject: openproject:
fileshareName: "Nextcloud at {{ .Values.global.domain }}" fileshareName: "Nextcloud at {{ .Values.global.domain }}"
admin: admin:
@@ -42,7 +45,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 }}

View File

@@ -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"
@@ -21,8 +20,9 @@ releases:
waitForJobs: true waitForJobs: true
values: values:
- "values.yaml.gotmpl" - "values.yaml.gotmpl"
- {{ .Values.customization.release.openproject | default "additionalValues: false" }}
installed: {{ .Values.openproject.enabled }} installed: {{ .Values.openproject.enabled }}
timeout: 900 timeout: 1800
commonLabels: commonLabels:
deploy-stage: "component-1" deploy-stage: "component-1"

View File

@@ -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 }}
...

View 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 }}
...

View File

@@ -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,6 +8,10 @@ global:
imagePullSecrets: imagePullSecrets:
{{ .Values.global.imagePullSecrets | toYaml | nindent 4 }} {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
appInit:
resources:
{{ .Values.resources.openprojectAppInit | toYaml | nindent 4 }}
containerSecurityContext: containerSecurityContext:
enabled: true enabled: true
privileged: false privileged: false
@@ -23,6 +28,15 @@ containerSecurityContext:
seLinuxOptions: seLinuxOptions:
{{ .Values.seLinuxOptions.openproject | toYaml | nindent 4 }} {{ .Values.seLinuxOptions.openproject | toYaml | nindent 4 }}
dbInit:
image:
registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.openprojectDbInit.registry | quote }}
repository: {{ .Values.images.openprojectDbInit.repository | quote }}
tag: {{ .Values.images.openprojectDbInit.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
resources:
{{ .Values.resources.openprojectDbInit | toYaml | nindent 4 }}
environment: environment:
# For more details and more options see # For more details and more options see
# https://www.openproject.org/docs/installation-and-operations/configuration/environment/ # https://www.openproject.org/docs/installation-and-operations/configuration/environment/
@@ -31,7 +45,6 @@ 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_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
@@ -59,15 +72,15 @@ environment:
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.nubus }}.{{ .Values.global.domain }}/univention/portal/navigation.json?base=https%3A//{{ .Values.global.hosts.nubus }}.{{ .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.mailDomain | default .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_SMTP__AUTHENTICATION: "plain" OPENPROJECT_SMTP__AUTHENTICATION: "none"
OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "true" OPENPROJECT_SMTP__ENABLE__STARTTLS__AUTO: "false"
OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "peer" OPENPROJECT_SMTP__OPENSSL__VERIFY__MODE: "none"
OPENPROJECT_MAIL__FROM: "{{ .Values.smtp.localpartNoReply }}@{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.openproject }}.{{ end }}{{ .Values.global.domain }}" 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_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 }}/"
@@ -76,18 +89,11 @@ environment:
{{- end }} {{- 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:
image:
registry: {{ .Values.global.imageRegistry | default .Values.images.openprojectInitDb.registry | quote }}
repository: {{ .Values.images.openprojectInitDb.repository | quote }}
tag: {{ .Values.images.openprojectInitDb.tag | quote }}
imagePullPolicy: {{ .Values.global.imagePullPolicy | quote }}
memcached: memcached:
bundled: false bundled: false
connection: connection:
@@ -97,6 +103,8 @@ memcached:
persistence: persistence:
enabled: false enabled: false
podAnnotations: {}
postgresql: postgresql:
bundled: false bundled: false
auth: auth:
@@ -180,5 +188,14 @@ s3:
seederJob: seederJob:
annotations: annotations:
intents.otterize.com/service-name: "openproject-seeder" intents.otterize.com/service-name: "openproject-seeder"
argocd.argoproj.io/hook: "Sync"
argocd.argoproj.io/hook-delete-policy: "HookSucceeded"
resources:
{{ .Values.resources.openprojectSeederJob | toYaml | nindent 4 }}
workers:
default:
resources:
{{ .Values.resources.openprojectWorkers | toYaml | nindent 6 }}
... ...

View File

@@ -1,24 +0,0 @@
# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
# SPDX-License-Identifier: Apache-2.0
---
repositories:
# OX Connector
- name: "ox-connector-repo"
username: {{ env "OD_PRIVATE_REGISTRY_USERNAME" | quote }}
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
oci: true
url: "{{ .Values.global.helmRegistry | default .Values.charts.oxConnector.registry }}/\
{{ .Values.charts.oxConnector.repository }}"
releases:
- name: "ox-connector"
chart: "ox-connector-repo/{{ .Values.charts.oxConnector.name }}"
version: "{{ .Values.charts.oxConnector.version }}"
values:
- "values-oxconnector.yaml.gotmpl"
installed: {{ .Values.oxConnector.enabled }}
commonLabels:
deploy-stage: "component-2"
component: "provisioning"
...

View File

@@ -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 }}
...

View File

@@ -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"
@@ -120,6 +119,7 @@ releases:
version: "{{ .Values.charts.otterize.version }}" version: "{{ .Values.charts.otterize.version }}"
values: values:
- "values-otterize.yaml.gotmpl" - "values-otterize.yaml.gotmpl"
- {{ .Values.customization.release.opendeskOtterize | default "additionalValues: false" }}
installed: {{ .Values.security.otterizeIntents.enabled }} installed: {{ .Values.security.otterizeIntents.enabled }}
timeout: 900 timeout: 900
@@ -128,6 +128,7 @@ releases:
version: "{{ .Values.charts.home.version }}" version: "{{ .Values.charts.home.version }}"
values: values:
- "values-home.yaml.gotmpl" - "values-home.yaml.gotmpl"
- {{ .Values.customization.release.opendeskHome | default "additionalValues: false" }}
installed: {{ .Values.home.enabled }} installed: {{ .Values.home.enabled }}
- name: "opendesk-certificates" - name: "opendesk-certificates"
@@ -135,6 +136,7 @@ releases:
version: "{{ .Values.charts.certificates.version }}" version: "{{ .Values.charts.certificates.version }}"
values: values:
- "values-certificates.yaml.gotmpl" - "values-certificates.yaml.gotmpl"
- {{ .Values.customization.release.opendeskCertificates | default "additionalValues: false" }}
installed: {{ .Values.certificates.enabled }} installed: {{ .Values.certificates.enabled }}
timeout: 900 timeout: 900
@@ -143,6 +145,7 @@ releases:
version: "{{ .Values.charts.redis.version }}" version: "{{ .Values.charts.redis.version }}"
values: values:
- "values-redis.yaml.gotmpl" - "values-redis.yaml.gotmpl"
- {{ .Values.customization.release.redis | default "additionalValues: false" }}
installed: {{ .Values.redis.enabled }} installed: {{ .Values.redis.enabled }}
timeout: 900 timeout: 900
@@ -151,6 +154,7 @@ releases:
version: "{{ .Values.charts.memcached.version }}" version: "{{ .Values.charts.memcached.version }}"
values: values:
- "values-memcached.yaml.gotmpl" - "values-memcached.yaml.gotmpl"
- {{ .Values.customization.release.memcached | default "additionalValues: false" }}
installed: {{ .Values.memcached.enabled }} installed: {{ .Values.memcached.enabled }}
timeout: 900 timeout: 900
@@ -159,6 +163,7 @@ releases:
version: "{{ .Values.charts.postgresql.version }}" version: "{{ .Values.charts.postgresql.version }}"
values: values:
- "values-postgresql.yaml.gotmpl" - "values-postgresql.yaml.gotmpl"
- {{ .Values.customization.release.postgresql | default "additionalValues: false" }}
installed: {{ .Values.postgresql.enabled }} installed: {{ .Values.postgresql.enabled }}
timeout: 900 timeout: 900
@@ -167,6 +172,7 @@ releases:
version: "{{ .Values.charts.mariadb.version }}" version: "{{ .Values.charts.mariadb.version }}"
values: values:
- "values-mariadb.yaml.gotmpl" - "values-mariadb.yaml.gotmpl"
- {{ .Values.customization.release.mariadb | default "additionalValues: false" }}
installed: {{ .Values.mariadb.enabled }} installed: {{ .Values.mariadb.enabled }}
timeout: 900 timeout: 900
@@ -175,14 +181,25 @@ releases:
version: "{{ .Values.charts.postfix.version }}" version: "{{ .Values.charts.postfix.version }}"
values: values:
- "values-postfix.yaml.gotmpl" - "values-postfix.yaml.gotmpl"
- {{ .Values.customization.release.postfix | default "additionalValues: false" }}
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"
- {{ .Values.customization.release.opendeskDkimpyMilter | default "additionalValues: false" }}
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 }}"
values: values:
- "values-clamav-distributed.yaml.gotmpl" - "values-clamav-distributed.yaml.gotmpl"
- {{ .Values.customization.release.clamav | default "additionalValues: false" }}
installed: {{ .Values.clamavDistributed.enabled }} installed: {{ .Values.clamavDistributed.enabled }}
timeout: 900 timeout: 900
@@ -191,6 +208,7 @@ releases:
version: "{{ .Values.charts.clamavSimple.version }}" version: "{{ .Values.charts.clamavSimple.version }}"
values: values:
- "values-clamav-simple.yaml.gotmpl" - "values-clamav-simple.yaml.gotmpl"
- {{ .Values.customization.release.clamavSimple | default "additionalValues: false" }}
installed: {{ .Values.clamavSimple.enabled }} installed: {{ .Values.clamavSimple.enabled }}
timeout: 900 timeout: 900
@@ -199,6 +217,7 @@ releases:
version: "{{ .Values.charts.minio.version }}" version: "{{ .Values.charts.minio.version }}"
values: values:
- "values-minio.yaml.gotmpl" - "values-minio.yaml.gotmpl"
- {{ .Values.customization.release.minio | default "additionalValues: false" }}
installed: {{ .Values.minio.enabled }} installed: {{ .Values.minio.enabled }}
timeout: 900 timeout: 900

View File

@@ -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 }}
...

View 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 }}
...

View File

@@ -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,7 +7,48 @@ 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.nubus.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 }}

View File

@@ -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,10 +21,11 @@ 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 }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101
@@ -62,10 +66,11 @@ 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 }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101
@@ -73,7 +78,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,10 +108,11 @@ 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 }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101
@@ -124,10 +138,11 @@ 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 }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101

View File

@@ -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 }}
@@ -37,6 +40,8 @@ persistence:
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
size: {{ .Values.persistence.size.clamav | quote }} size: {{ .Values.persistence.size.clamav | quote }}
podAnnotations: {}
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 101 fsGroup: 101
@@ -47,4 +52,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 }}
... ...

View 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 }}
...

View File

@@ -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.debug.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 }}
@@ -56,6 +73,10 @@ persistence:
storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }} storageClass: {{ .Values.persistence.storageClassNames.RWO | quote }}
size: {{ .Values.persistence.size.mariadb | quote }} size: {{ .Values.persistence.size.mariadb | quote }}
podAnnotations:
argocd.argoproj.io/hook: "PostSync"
argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation"
podSecurityContext: podSecurityContext:
enabled: true enabled: true
fsGroup: 1001 fsGroup: 1001

View File

@@ -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,11 +27,13 @@ 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 }}
podAnnotations: {}
replicaCount: {{ .Values.replicas.memcached }} replicaCount: {{ .Values.replicas.memcached }}
resources: resources:

View File

@@ -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 }}"
@@ -85,7 +88,8 @@ 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:
@@ -178,6 +182,8 @@ provisioning:
resources: resources:
{{ .Values.resources.minio | toYaml | nindent 4 }} {{ .Values.resources.minio | toYaml | nindent 4 }}
podAnnotations: {}
readinessProbe: readinessProbe:
enabled: true enabled: true
initialDelaySeconds: 5 initialDelaySeconds: 5

View File

@@ -16,8 +16,6 @@ apps:
enabled: {{ .Values.dovecot.enabled }} enabled: {{ .Values.dovecot.enabled }}
element: element:
enabled: {{ .Values.element.enabled }} enabled: {{ .Values.element.enabled }}
intercom:
enabled: {{ .Values.intercom.enabled }}
jitsi: jitsi:
enabled: {{ .Values.jitsi.enabled }} enabled: {{ .Values.jitsi.enabled }}
mariadb: mariadb:
@@ -32,8 +30,6 @@ apps:
enabled: {{ .Values.openproject.enabled }} enabled: {{ .Values.openproject.enabled }}
oxAppsuite: oxAppsuite:
enabled: {{ .Values.oxAppsuite.enabled }} enabled: {{ .Values.oxAppsuite.enabled }}
oxConnector:
enabled: {{ .Values.oxConnector.enabled }}
postfix: postfix:
enabled: {{ .Values.postfix.enabled }} enabled: {{ .Values.postfix.enabled }}
postgresql: postgresql:
@@ -48,7 +44,6 @@ apps:
ingressController: ingressController:
{{ .Values.security.ingressController | toYaml | nindent 2 }} {{ .Values.security.ingressController | toYaml | nindent 2 }}
extraApps: extraApps:
clusterPostfix: clusterPostfix:
enabled: {{ .Values.security.clusterPostfix.enabled }} enabled: {{ .Values.security.clusterPostfix.enabled }}

View File

@@ -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 }}
@@ -49,6 +52,9 @@ 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: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }} relayHost: {{ if .Values.smtp.host }}{{ printf "[%s]:%d" .Values.smtp.host .Values.smtp.port | quote }}{{ else }}""{{ end }}
relayNets: {{ join " " .Values.cluster.networking.cidr | quote }} relayNets: {{ join " " .Values.cluster.networking.cidr | quote }}
@@ -70,6 +76,8 @@ postfix:
virtualMailboxDomains: {{ .Values.global.mailDomain | default .Values.global.domain | quote }} virtualMailboxDomains: {{ .Values.global.mailDomain | default .Values.global.domain | quote }}
virtualTransport: "lmtps:dovecot:24" virtualTransport: "lmtps:dovecot:24"
podAnnotations: {}
replicaCount: {{ .Values.replicas.postfix }} replicaCount: {{ .Values.replicas.postfix }}
resources: resources:

View File

@@ -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,16 +24,11 @@ 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
fsGroupChangePolicy: "OnRootMismatch" fsGroupChangePolicy: "OnRootMismatch"
postgres:
user: "postgres"
replicaCount: {{ .Values.replicas.postgres }} replicaCount: {{ .Values.replicas.postgres }}
global: global:
@@ -34,7 +36,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,42 +45,54 @@ 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 }}
size: {{ .Values.persistence.size.postgresql | quote }} size: {{ .Values.persistence.size.postgresql | quote }}
podAnnotations:
argocd.argoproj.io/hook: "PostSync"
argocd.argoproj.io/hook-delete-policy: "BeforeHookCreation"
postgres: postgres:
user: "postgres"
password: {{ .Values.secrets.postgresql.postgresUser | quote }} password: {{ .Values.secrets.postgresql.postgresUser | quote }}
resources: resources:

View File

@@ -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 }}
@@ -35,6 +38,7 @@ master:
count: {{ .Values.replicas.redis }} count: {{ .Values.replicas.redis }}
persistence: persistence:
size: {{ .Values.persistence.size.redis | quote }} size: {{ .Values.persistence.size.redis | quote }}
podAnnotations: {}
resources: resources:
{{ .Values.resources.redis | toYaml | nindent 4 }} {{ .Values.resources.redis | toYaml | nindent 4 }}

View File

@@ -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.xwiki.registry }}/\ url: "{{ .Values.global.helmRegistry | default .Values.charts.xwiki.registry }}/{{ .Values.charts.xwiki.repository }}"
{{ .Values.charts.xwiki.repository }}"
releases: releases:
- name: "xwiki" - name: "xwiki"
@@ -20,8 +19,9 @@ releases:
wait: true wait: true
values: values:
- "values.yaml.gotmpl" - "values.yaml.gotmpl"
- {{ .Values.customization.release.xwiki | default "additionalValues: false" }}
installed: {{ .Values.xwiki.enabled }} installed: {{ .Values.xwiki.enabled }}
timeout: 900 timeout: 1800
commonLabels: commonLabels:
deploy-stage: "component-1" deploy-stage: "component-1"

View File

@@ -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 }}
...

View 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 }}
...

View File

@@ -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:
name: "{{ .Values.global.imageRegistry | default .Values.images.xwiki.registry }}/{{ .Values.images.xwiki.repository }}" name: "{{ coalesce .Values.repositories.image.registryOpencodeDe .Values.global.imageRegistry .Values.images.xwiki.registry }}/{{ .Values.images.xwiki.repository }}"
tag: {{ .Values.images.xwiki.tag | quote }} tag: {{ .Values.images.xwiki.tag | quote }}
pullPolicy: {{ .Values.global.imagePullPolicy | quote }} pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
@@ -87,6 +88,8 @@ customConfigs:
workplaceServices.base: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}" workplaceServices.base: "https://{{ .Values.global.hosts.nubus }}.{{ .Values.global.domain }}"
workplaceServices.portalSecret: {{ .Values.secrets.centralnavigation.apiKey | quote }} workplaceServices.portalSecret: {{ .Values.secrets.centralnavigation.apiKey | quote }}
openoffice.serverType: "0" openoffice.serverType: "0"
openoffice.autoStart: "false"
openoffice.homePath: "/tmp"
notifications.emails.live.graceTime: "5" notifications.emails.live.graceTime: "5"
ingress: ingress:
@@ -136,13 +139,13 @@ properties:
"property:xwiki:XWiki.XWikiServerXwiki^XWiki.XWikiServerClass.secure": 1 "property:xwiki:XWiki.XWikiServerXwiki^XWiki.XWikiServerClass.secure": 1
"property:xwiki:XWiki.XWikiServerXwiki^XWiki.XWikiServerClass.server": "{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}" "property:xwiki:XWiki.XWikiServerXwiki^XWiki.XWikiServerClass.server": "{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}"
"property:xwiki:XWiki.XWikiServerXwiki^XWiki.XWikiServerClass.port": 443 "property:xwiki:XWiki.XWikiServerXwiki^XWiki.XWikiServerClass.port": 443
## This option overwrites the LDAP group mappings including all dynamically created mappings, therefore on XWiki restart an LDAP sync is triggered to load the dynamic mapping.
"property:xwiki:XWiki.XWikiPreferences^XWiki.XWikiPreferences.ldap_group_mapping": "xwiki:XWiki.XWikiAdminGroup=cn=managed-by-attribute-KnowledgemanagementAdmin,cn=groups,dc=swp-ldap,dc=internal"
## SMTP settings ## SMTP settings
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.from": "{{ .Values.smtp.localpartNoReply }}@{{ if .Values.functional.email.systemGenerated.useComponentInSenderdomain }}{{ .Values.global.hosts.xwiki }}.{{ end }}{{ .Values.global.domain }}" "property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.from": "{{ .Values.smtp.localpartNoReply }}@{{ .Values.global.domain }}"
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.host": {{ .Values.smtp.host | quote }} "property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.host": {{ printf "%s.%s.svc.%s" "postfix" (.Values.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }}
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.port": {{ .Values.smtp.port | quote }} "property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.port": 25
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.username": {{ .Values.smtp.username | quote }} "property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.properties": "mail.smtp.starttls.enable=false"
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.password": {{ .Values.smtp.password | quote }}
"property:xwiki:Mail.MailConfig^Mail.SendMailConfigClass.properties": "mail.smtp.starttls.enable=true"
## Link LDAP users and users authenticated through OIDC ## Link LDAP users and users authenticated through OIDC
"property:xwiki:LDAPUserImport.WebHome^LDAPUserImport.LDAPUserImportConfigClass.addOIDCObject": 1 "property:xwiki:LDAPUserImport.WebHome^LDAPUserImport.LDAPUserImportConfigClass.addOIDCObject": 1
"property:xwiki:LDAPUserImport.WebHome^LDAPUserImport.LDAPUserImportConfigClass.OIDCIssuer": "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}" "property:xwiki:LDAPUserImport.WebHome^LDAPUserImport.LDAPUserImportConfigClass.OIDCIssuer": "https://{{ .Values.global.hosts.keycloak }}.{{ .Values.global.domain }}/realms/{{ .Values.platform.realm }}"

Some files were not shown because too many files have changed in this diff Show More