diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9cf3f1ff..2eb8e9fe 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -283,6 +283,18 @@ env-start:
ca:
secretName: opendesk-root-cert-secret
EOF
+ after_script:
+ # Set credentials for openDesk Enterprise Registry
+ - |
+ if [[ -n "${OPENDESK_ENTERPRISE}" ]]; then
+ kubectl create secret
+ --namespace "${NAMESPACE}"
+ docker-registry enterprise-registry
+ --docker-server "registry.opencode.de"
+ --docker-username "${OD_ENTERPRISE_PRIVATE_REGISTRY_USERNAME}"
+ --docker-password "${OD_ENTERPRISE_PRIVATE_REGISTRY_PASSWORD}"
+ --dry-run=client -o yaml | kubectl apply -f -
+ fi
stage: "env"
policies-deploy:
diff --git a/README-EE.md b/README-EE.md
new file mode 100644
index 00000000..0718aca4
--- /dev/null
+++ b/README-EE.md
@@ -0,0 +1,102 @@
+
+
+
openDesk Enterprise Edition
+
+
+* [Components](#components)
+* [Enabling the Enterprise deployment](#enabling-the-enterprise-deployment)
+* [Configuring the oD EE deployment for self-hosted installations](#configuring-the-od-ee-deployment-for-self-hosted-installations)
+ * [Registry access](#registry-access)
+ * [License keys](#license-keys)
+
+
+openDesk Enterprise Edition is recommended for production use. It receives support and patches from ZenDiS and the suppliers of the components due to the included product subscriptions.
+
+The document refers to openDesk Community Edition as "oD CE" and for the openDesk Enterprise Edition it is "oD EE".
+
+Please contact [ZenDiS](mailto:opendesk@zendis.de) to get openDesk Enterprise, either as SaaS offering or for you on-premise installation.
+
+# Components
+
+The following components using the same codebase and artifacts for their Enterprise and Community offering:
+- Cryptpad
+- Jitsi
+- Nubus
+- OpenProject
+- XWiki
+
+The following components have - at least partially - Enterprise specific artifacts:
+
+- Collabora: Collabora Online image version `...3` will be used once available, at the same time the Collabora Development Edition image will be updated to `...2` for oD CE.
+- Element: Some artifacts providing additional functionality are only available in oD EE. For the shared artifacts we keep the ones in oD CE and oD EE in sync.
+- Nextcloud: Specific enterprise image based on the NC Enterprise package is build based on the same release version as used in oD CE.
+- OX AppSuite: oD CE and EE are using the same release version, in EE an enterprise-built container of the AppSuite's Core-Middleware is being integrated.
+- OX Dovecot Pro 3: Dovecot Pro provides support for S3 storage and this feature is used by default.
+
+# Enabling the Enterprise deployment
+
+To enable the oD EE deployment you must set the environment variable `OPENDESK_ENTERPRISE` to any value.
+
+```shell
+OPENDESK_ENTERPRISE=any_value
+```
+
+# Configuring the oD EE deployment for self-hosted installations
+
+## Registry access
+
+With openDesk EE you get access to the related artifact registry owned by ZenDiS.
+
+Three steps are required to access the registry - for step #1 and #2 you can set some variables. You can to define a `` freely, like `enterprise-secret`, as long as it consistent in step #1 and #3.
+
+```shell
+NAMESPACE=
+NAME_FOR_THE_SECRET=
+YOUR_ENTERPRISE_REGISTRY_USERNAME=
+YOUR_ENTERPRISE_REGISTRY_PASSWORD=
+```
+
+1. Add your registry credentials as secret to the namespace you want to deploy openDesk to. Do not forget to create the namespace if it does not exist yet (`kubectl create namespace ${NAMESPACE}`).
+
+```shell
+kubectl create secret --namespace "${NAMESPACE}" \
+ docker-registry "${NAME_FOR_THE_SECRET}" \
+ --docker-server "registry.opencode.de" \
+ --docker-username "${YOUR_ENTERPRISE_REGISTRY_USERNAME}" \
+ --docker-password "${YOUR_ENTERPRISE_REGISTRY_PASSWORD}" \
+ --dry-run=client -o yaml | kubectl apply -f -
+```
+
+2. Docker login to the registry to access Helm charts for local deployments:
+
+```shell
+docker login registry.opencode.de -u ${YOUR_ENTERPRISE_REGISTRY_USERNAME} -p ${YOUR_ENTERPRISE_REGISTRY_PASSWORD}
+```
+
+3. Reference the secret from step #1 in the deployment as well as the registry itself for `images` and `helm` charts:
+
+```yaml
+global:
+ imagePullSecrets:
+ - ""
+repositories:
+ image:
+ registryOpencodeDeEnterprise: "registry.opencode.de"
+ helm:
+ registryOpencodeDeEnterprise: "registry.opencode.de"
+```
+
+## License keys
+
+Some applications require license information for their Enterprise features to be enabled. With the aforementioned registry credentials you will also receive a file called `enterprise.yaml` containing the relevant license keys.
+
+Please place the file next your other `.yaml.gotmpl` file(s) that configure your deployment.
+
+Details regarding the scope/limitation of the component's licenses:
+
+- Nextcloud: Enterprise license to enable [Nextcloud Enterprise](https://nextcloud.com/de/enterprise/) specific features, can be used across multiple installations until the licensed number of users is reached.
+- OpenProject: Domain specific enterprise license to enable [OpenProject's Enterprise feature set](https://www.openproject.org/enterprise-edition/), domain matching can use regular expressions.
+- XWiki: Deployment specific enterprise license (key pair) to activate the [XWiki Pro](https://xwiki.com/en/offerings/products/xwiki-pro) apps.
diff --git a/README.md b/README.md
index 870d7ac1..fe6d1271 100644
--- a/README.md
+++ b/README.md
@@ -27,6 +27,8 @@ SPDX-License-Identifier: Apache-2.0
openDesk is a Kubernetes based, open-source and cloud-native digital workplace suite provided by the
*Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH*.
+For production use the [openDesk Enterprise Edition](./README-EE.md) is required.
+
openDesk currently features the following functional main components:
| Function | Functional Component | Component
Version | Upstream Documentation |
diff --git a/helmfile/apps/collabora/helmfile-child.yaml.gotmpl b/helmfile/apps/collabora/helmfile-child.yaml.gotmpl
index 0ab6ab13..48cc73b3 100644
--- a/helmfile/apps/collabora/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/collabora/helmfile-child.yaml.gotmpl
@@ -28,17 +28,23 @@ releases:
version: "{{ .Values.charts.collabora.version }}"
values:
- "values.yaml.gotmpl"
- {{ range .Values.customization.release.collaboraOnline }}
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "values-enterprise.yaml.gotmpl"
+ {{- end }}
+ {{- range .Values.customization.release.collaboraOnline }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.collabora.enabled }}
- name: "collabora-controller"
chart: "collabora-controller-repo/{{ .Values.charts.collaboraController.name }}"
version: "{{ .Values.charts.collaboraController.version }}"
values:
- {{ range .Values.customization.release.collaboraController }}
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "values-coco-enterprise.yaml.gotmpl"
+ {{- end }}
+ {{- range .Values.customization.release.collaboraController }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.collaboraController.enabled }}
commonLabels:
diff --git a/helmfile/apps/collabora/helmfile.yaml.gotmpl b/helmfile/apps/collabora/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/collabora/helmfile.yaml.gotmpl
+++ b/helmfile/apps/collabora/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/collabora/values-coco-enterprise.yaml.gotmpl b/helmfile/apps/collabora/values-coco-enterprise.yaml.gotmpl
new file mode 100644
index 00000000..1826ef0d
--- /dev/null
+++ b/helmfile/apps/collabora/values-coco-enterprise.yaml.gotmpl
@@ -0,0 +1,63 @@
+{{/*
+SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+SPDX-License-Identifier: Apache-2.0
+*/}}
+---
+controller:
+ enableHashmapParallelization: true
+ ingressUrl: "https://{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}"
+ namespacedRole: true
+ # CoolController uses `app.kubernetes.io/name` label to find deployment resource
+ # openDesk uses `fullnameOverride` in Collabora Deployment that updates `metadata.name` not the `app.kubernetes.io/name`
+ # Therefore we use the default of `collabora-online` for the `resourceName`
+ resourceName: "collabora-online"
+ statsInterval: 2000
+ watchNamespace: {{ (.Values.collabora.namespace | default .Release.Namespace | quote) }}
+
+ documentMigrator:
+ enabled: true
+ coolMemoryUtilization: {{ .Values.enterpriseFeatures.collabora.autoscaling.targetMemoryUtilizationPercentage }}
+ coolMemoryLimit: {{ .Values.resources.collabora.limits.memory }}
+
+ leaderElection:
+ enabled: {{ if gt .Values.replicas.collaboraController 1 }}true{{ else }}false{{ end }}
+
+image:
+ repository: "{{ coalesce .Values.repositories.image.registryOpencodeDeEnterprise .Values.global.imageRegistry .Values.images.collaboraController.registry }}/{{ .Values.images.collaboraController.repository }}"
+ tag: {{ .Values.images.collaboraController.tag | quote }}
+imagePullSecrets:
+ {{- range .Values.global.imagePullSecrets }}
+ - name: {{ . | quote }}
+ {{- end }}
+
+ingress:
+ enabled: {{ .Values.ingress.enabled }}
+ className: {{ .Values.ingress.ingressClassName | quote }}
+ hosts:
+ - host: "{{ .Values.global.hosts.collabora }}.{{ .Values.global.domain }}"
+ paths:
+ - path: "/controller"
+ pathType: "Prefix"
+
+podAnnotations: {}
+
+securityContext:
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - ALL
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsNonRoot: true
+ runAsGroup: 2000
+ runAsUser: 1000
+ seccompProfile:
+ type: "RuntimeDefault"
+ seLinuxOptions:
+
+replicaCount: {{ .Values.replicas.collaboraController }}
+
+resources:
+ {{ .Values.resources.collaboraController | toYaml | nindent 2 }}
+
+...
diff --git a/helmfile/apps/collabora/values-enterprise.yaml.gotmpl b/helmfile/apps/collabora/values-enterprise.yaml.gotmpl
new file mode 100644
index 00000000..7e9e4a74
--- /dev/null
+++ b/helmfile/apps/collabora/values-enterprise.yaml.gotmpl
@@ -0,0 +1,15 @@
+{{/*
+SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+SPDX-License-Identifier: Apache-2.0
+*/}}
+---
+image:
+ repository: "{{ coalesce .Values.repositories.image.registryOpencodeDeEnterprise .Values.global.imageRegistry .Values.images.collabora.registry }}/{{ .Values.images.collabora.repository }}"
+autoscaling:
+ enabled: {{ .Values.collaboraController.enabled }}
+ minReplicas: {{ .Values.enterpriseFeatures.collabora.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.enterpriseFeatures.collabora.autoscaling.maxReplicas }}
+ targetMemoryUtilizationPercentage: {{ .Values.enterpriseFeatures.collabora.autoscaling.targetMemoryUtilizationPercentage }}
+ targetCPUUtilizationPercentage: {{ .Values.enterpriseFeatures.collabora.autoscaling.targetCPUUtilizationPercentage }}
+ scaleDownDisabled: {{ .Values.enterpriseFeatures.collabora.autoscaling.scaleDownDisabled }}
+...
diff --git a/helmfile/apps/cryptpad/helmfile-child.yaml.gotmpl b/helmfile/apps/cryptpad/helmfile-child.yaml.gotmpl
index 746de7a3..2f5f5d06 100644
--- a/helmfile/apps/cryptpad/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/cryptpad/helmfile-child.yaml.gotmpl
@@ -18,9 +18,9 @@ releases:
version: "{{ .Values.charts.cryptpad.version }}"
values:
- "values.yaml.gotmpl"
- {{ range .Values.customization.release.cryptpad }}
+ {{- range .Values.customization.release.cryptpad }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.cryptpad.enabled }}
commonLabels:
diff --git a/helmfile/apps/cryptpad/helmfile.yaml.gotmpl b/helmfile/apps/cryptpad/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/cryptpad/helmfile.yaml.gotmpl
+++ b/helmfile/apps/cryptpad/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/element/helmfile-child.yaml.gotmpl b/helmfile/apps/element/helmfile-child.yaml.gotmpl
index 7f564e2f..789bb5d5 100644
--- a/helmfile/apps/element/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/element/helmfile-child.yaml.gotmpl
@@ -117,9 +117,9 @@ releases:
version: "{{ .Values.charts.element.version }}"
values:
- "values-element.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskElement }}
+ {{- range .Values.customization.release.opendeskElement }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.element.enabled }}
timeout: 900
@@ -128,9 +128,9 @@ releases:
version: "{{ .Values.charts.elementWellKnown.version }}"
values:
- "values-well-known.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskWellKnown }}
+ {{- range .Values.customization.release.opendeskWellKnown }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.element.enabled }}
timeout: 900
@@ -139,9 +139,9 @@ releases:
version: "{{ .Values.charts.synapseWeb.version }}"
values:
- "values-synapse-web.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskSynapseWeb }}
+ {{- range .Values.customization.release.opendeskSynapseWeb }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.element.enabled }}
timeout: 900
@@ -150,9 +150,9 @@ releases:
version: "{{ .Values.charts.synapse.version }}"
values:
- "values-synapse.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskSynapse }}
+ {{- range .Values.customization.release.opendeskSynapse }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.element.enabled }}
timeout: 900
@@ -217,9 +217,9 @@ releases:
chart: "synapse-admin-repo/{{ .Values.charts.synapseAdmin.name }}"
version: "{{ .Values.charts.synapseAdmin.version }}"
values:
- {{ range .Values.customization.release.opendeskSynapseAdmin }}
+ {{- range .Values.customization.release.opendeskSynapseAdmin }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.elementAdmin.enabled }}
timeout: 900
@@ -227,9 +227,9 @@ releases:
chart: "synapse-create-account-repo/{{ .Values.charts.synapseCreateAccount.name }}"
version: "{{ .Values.charts.synapseCreateAccount.version }}"
values:
- {{ range .Values.customization.release.opendeskSynapseAdminbotBootstrap }}
+ {{- range .Values.customization.release.opendeskSynapseAdminbotBootstrap }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.elementAdmin.enabled }}
timeout: 900
@@ -237,9 +237,9 @@ releases:
chart: "synapse-pipe-repo/{{ .Values.charts.synapsePipe.name }}"
version: "{{ .Values.charts.synapsePipe.version }}"
values:
- {{ range .Values.customization.release.opendeskSynapseAdminbotPipe }}
+ {{- range .Values.customization.release.opendeskSynapseAdminbotPipe }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.elementAdmin.enabled }}
timeout: 900
@@ -247,9 +247,9 @@ releases:
chart: "synapse-adminbot-web-repo/{{ .Values.charts.synapseAdminbotWeb.name }}"
version: "{{ .Values.charts.synapseAdminbotWeb.version }}"
values:
- {{ range .Values.customization.release.opendeskSynapseAdminbotWeb }}
+ {{- range .Values.customization.release.opendeskSynapseAdminbotWeb }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.elementAdmin.enabled }}
timeout: 900
@@ -257,9 +257,9 @@ releases:
chart: "synapse-create-account-repo/{{ .Values.charts.synapseCreateAccount.name }}"
version: "{{ .Values.charts.synapseCreateAccount.version }}"
values:
- {{ range .Values.customization.release.opendeskSynapseAuditbotBootstrap }}
+ {{- range .Values.customization.release.opendeskSynapseAuditbotBootstrap }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.elementAdmin.enabled }}
timeout: 900
@@ -267,9 +267,9 @@ releases:
chart: "synapse-pipe-repo/{{ .Values.charts.synapsePipe.name }}"
version: "{{ .Values.charts.synapsePipe.version }}"
values:
- {{ range .Values.customization.release.opendeskSynapseAuditbotPipe }}
+ {{- range .Values.customization.release.opendeskSynapseAuditbotPipe }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.elementAdmin.enabled }}
timeout: 900
@@ -277,9 +277,9 @@ releases:
chart: "synapse-groupsync-repo/{{ .Values.charts.synapseGroupsync.name }}"
version: "{{ .Values.charts.synapseGroupsync.version }}"
values:
- {{ range .Values.customization.release.opendeskSynapseGroupsync }}
+ {{- range .Values.customization.release.opendeskSynapseGroupsync }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.elementGroupsync.enabled }}
timeout: 900
diff --git a/helmfile/apps/element/helmfile.yaml.gotmpl b/helmfile/apps/element/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/element/helmfile.yaml.gotmpl
+++ b/helmfile/apps/element/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/jitsi/helmfile-child.yaml.gotmpl b/helmfile/apps/jitsi/helmfile-child.yaml.gotmpl
index 47c9d452..017530f7 100644
--- a/helmfile/apps/jitsi/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/jitsi/helmfile-child.yaml.gotmpl
@@ -18,9 +18,9 @@ releases:
version: "{{ .Values.charts.jitsi.version }}"
values:
- "values-jitsi.yaml.gotmpl"
- {{ range .Values.customization.release.jitsi }}
+ {{- range .Values.customization.release.jitsi }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.jitsi.enabled }}
timeout: 900
diff --git a/helmfile/apps/jitsi/helmfile.yaml.gotmpl b/helmfile/apps/jitsi/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/jitsi/helmfile.yaml.gotmpl
+++ b/helmfile/apps/jitsi/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/nextcloud/helmfile-child.yaml.gotmpl b/helmfile/apps/nextcloud/helmfile-child.yaml.gotmpl
index bebcbcff..4cfbca83 100644
--- a/helmfile/apps/nextcloud/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/nextcloud/helmfile-child.yaml.gotmpl
@@ -25,9 +25,12 @@ releases:
version: "{{ .Values.charts.nextcloudManagement.version }}"
values:
- "values-nextcloud-mgmt.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskNextcloudManagement }}
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "values-nextcloud-mgmt-enterprise.yaml.gotmpl"
+ {{- end }}
+ {{- range .Values.customization.release.opendeskNextcloudManagement }}
- {{ . }}
- {{ end }}
+ {{- end }}
waitForJobs: true
wait: true
installed: {{ .Values.nextcloud.enabled }}
@@ -37,9 +40,12 @@ releases:
version: "{{ .Values.charts.nextcloud.version }}"
values:
- "values-nextcloud.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskNextcloud }}
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "values-nextcloud-enterprise.yaml.gotmpl"
+ {{- end }}
+ {{- range .Values.customization.release.opendeskNextcloud }}
- {{ . }}
- {{ end }}
+ {{- end }}
needs:
- "opendesk-nextcloud-management"
installed: {{ .Values.nextcloud.enabled }}
diff --git a/helmfile/apps/nextcloud/helmfile.yaml.gotmpl b/helmfile/apps/nextcloud/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/nextcloud/helmfile.yaml.gotmpl
+++ b/helmfile/apps/nextcloud/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/nextcloud/values-nextcloud-enterprise.yaml.gotmpl b/helmfile/apps/nextcloud/values-nextcloud-enterprise.yaml.gotmpl
new file mode 100644
index 00000000..09e2f44f
--- /dev/null
+++ b/helmfile/apps/nextcloud/values-nextcloud-enterprise.yaml.gotmpl
@@ -0,0 +1,9 @@
+{{/*
+SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+SPDX-License-Identifier: Apache-2.0
+*/}}
+---
+aio:
+ image:
+ registry: {{ coalesce .Values.repositories.image.registryOpencodeDeEnterprise .Values.global.imageRegistry .Values.images.nextcloud.registry | quote }}
+...
diff --git a/helmfile/apps/nextcloud/values-nextcloud-mgmt-enterprise.yaml.gotmpl b/helmfile/apps/nextcloud/values-nextcloud-mgmt-enterprise.yaml.gotmpl
new file mode 100644
index 00000000..24b87527
--- /dev/null
+++ b/helmfile/apps/nextcloud/values-nextcloud-mgmt-enterprise.yaml.gotmpl
@@ -0,0 +1,12 @@
+{{/*
+SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+SPDX-License-Identifier: Apache-2.0
+*/}}
+---
+image:
+ registry: {{ coalesce .Values.repositories.image.registryOpencodeDeEnterprise .Values.global.imageRegistry .Values.images.nextcloud.registry | quote }}
+configuration:
+ enterprise:
+ subscriptionKey: {{ if .Values.enterpriseKeys.nextcloud.subscriptionKey }}{{ .Values.enterpriseKeys.nextcloud.subscriptionKey | quote }}{{ end }}
+ subscriptionData: {{ if .Values.enterpriseKeys.nextcloud.subscriptionData}}{{ .Values.enterpriseKeys.nextcloud.subscriptionData | quote }}{{ end }}
+...
diff --git a/helmfile/apps/notes/helmfile-child.yaml.gotmpl b/helmfile/apps/notes/helmfile-child.yaml.gotmpl
index 60a359fe..77974ca0 100644
--- a/helmfile/apps/notes/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/notes/helmfile-child.yaml.gotmpl
@@ -19,9 +19,9 @@ releases:
wait: true
values:
- "values.yaml.gotmpl"
- {{ range .Values.customization.release.notes }}
+ {{- range .Values.customization.release.notes }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.notes.enabled }}
timeout: 1800
diff --git a/helmfile/apps/notes/helmfile.yaml.gotmpl b/helmfile/apps/notes/helmfile.yaml.gotmpl
index 2021af07..4c93974d 100644
--- a/helmfile/apps/notes/helmfile.yaml.gotmpl
+++ b/helmfile/apps/notes/helmfile.yaml.gotmpl
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/nubus/helmfile-child.yaml.gotmpl b/helmfile/apps/nubus/helmfile-child.yaml.gotmpl
index 5d168c67..7bd479fa 100644
--- a/helmfile/apps/nubus/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/nubus/helmfile-child.yaml.gotmpl
@@ -44,9 +44,9 @@ releases:
version: "{{ .Values.charts.nubus.version }}"
values:
- "values-nubus.yaml.gotmpl"
- {{ range .Values.customization.release.ums }}
+ {{- range .Values.customization.release.ums }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.nubus.enabled }}
timeout: 900
# Intercom-Service
@@ -55,9 +55,9 @@ releases:
version: "{{ .Values.charts.intercomService.version }}"
values:
- "values-intercom-service.yaml.gotmpl"
- {{ range .Values.customization.release.intercomService }}
+ {{- range .Values.customization.release.intercomService }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.nubus.enabled }}
# openDesk Keycloak Bootstrap Chart
@@ -66,9 +66,9 @@ releases:
version: "{{ .Values.charts.opendeskKeycloakBootstrap.version }}"
values:
- "values-opendesk-keycloak-bootstrap.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskKeycloakBootstrap }}
+ {{- range .Values.customization.release.opendeskKeycloakBootstrap }}
- {{ . }}
- {{ end }}
+ {{- end }}
needs:
- "ums"
installed: {{ .Values.nubus.enabled }}
@@ -80,9 +80,9 @@ releases:
version: "{{ .Values.charts.nginxS3Gateway.version }}"
values:
- "values-nginx-s3-gateway.yaml.gotmpl"
- {{ range .Values.customization.release.nginxS3Gateway }}
+ {{- range .Values.customization.release.nginxS3Gateway }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ not .Values.minio.enabled }}
timeout: 900
diff --git a/helmfile/apps/nubus/helmfile.yaml.gotmpl b/helmfile/apps/nubus/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/nubus/helmfile.yaml.gotmpl
+++ b/helmfile/apps/nubus/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/nubus/values-nubus.yaml.gotmpl b/helmfile/apps/nubus/values-nubus.yaml.gotmpl
index c08e7172..09fc098f 100644
--- a/helmfile/apps/nubus/values-nubus.yaml.gotmpl
+++ b/helmfile/apps/nubus/values-nubus.yaml.gotmpl
@@ -1151,7 +1151,7 @@ nubusStackDataUms:
portaltileGroupNotes:
- 'cn=managed-by-attribute-Notes,cn=groups,{{ .Values.ldap.baseDn }}'
systemInformation:
- releaseVersion: "Release: {{ .Values.global.systemInformation.releaseVersion }}"
+ releaseVersion: "Release: {{ .Values.global.systemInformation.releaseVersion }}{{ if (env "OPENDESK_ENTERPRISE") }}-ee{{ end }}"
{{- if .Values.functional.admin.portal.deploymentTimestamp.enabled }}
deployDate: "Deployed: {{ now | date "2006-01-02T15:04:05-0700" }}"
{{- else }}
diff --git a/helmfile/apps/open-xchange/helmfile-child.yaml.gotmpl b/helmfile/apps/open-xchange/helmfile-child.yaml.gotmpl
index 9128a4b0..8e8247c6 100644
--- a/helmfile/apps/open-xchange/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/open-xchange/helmfile-child.yaml.gotmpl
@@ -45,9 +45,9 @@ releases:
version: "{{ .Values.charts.dovecot.version }}"
values:
- "values-dovecot.yaml.gotmpl"
- {{ range .Values.customization.release.dovecot }}
+ {{- range .Values.customization.release.dovecot }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.dovecot.enabled }}
timeout: 900
@@ -56,10 +56,13 @@ releases:
version: "{{ .Values.charts.oxAppSuite.version }}"
values:
- "values-openxchange.yaml.gotmpl"
- - "values-openxchange-enterprise-contact-picker.yaml.gotmpl"
- {{ range .Values.customization.release.openxchange }}
+ - "values-openxchange-contact-picker.yaml.gotmpl"
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "values-openxchange-enterprise.yaml.gotmpl"
+ {{- end }}
+ {{- range .Values.customization.release.openxchange }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.oxAppSuite.enabled }}
timeout: 900
@@ -68,9 +71,9 @@ releases:
version: "{{ .Values.charts.oxAppSuiteBootstrap.version }}"
values:
- "values-openxchange-bootstrap.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskOpenxchangeBootstrap }}
+ {{- range .Values.customization.release.opendeskOpenxchangeBootstrap }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.oxAppSuite.enabled }}
timeout: 900
@@ -79,9 +82,9 @@ releases:
version: "{{ .Values.charts.oxConnector.version }}"
values:
- "values-oxconnector.yaml.gotmpl"
- {{ range .Values.customization.release.oxConnector }}
+ {{- range .Values.customization.release.oxConnector }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.oxAppSuite.enabled }}
needs:
- "open-xchange"
diff --git a/helmfile/apps/open-xchange/helmfile.yaml.gotmpl b/helmfile/apps/open-xchange/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/open-xchange/helmfile.yaml.gotmpl
+++ b/helmfile/apps/open-xchange/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/open-xchange/values-openxchange-enterprise-contact-picker.yaml.gotmpl b/helmfile/apps/open-xchange/values-openxchange-contact-picker.yaml.gotmpl
similarity index 100%
rename from helmfile/apps/open-xchange/values-openxchange-enterprise-contact-picker.yaml.gotmpl
rename to helmfile/apps/open-xchange/values-openxchange-contact-picker.yaml.gotmpl
diff --git a/helmfile/apps/open-xchange/values-openxchange-enterprise.yaml.gotmpl b/helmfile/apps/open-xchange/values-openxchange-enterprise.yaml.gotmpl
new file mode 100644
index 00000000..b2ac300c
--- /dev/null
+++ b/helmfile/apps/open-xchange/values-openxchange-enterprise.yaml.gotmpl
@@ -0,0 +1,19 @@
+{{/*
+SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+SPDX-License-Identifier: Apache-2.0
+*/}}
+---
+appsuite:
+ plugins-ui:
+ enabled: false
+ core-mw:
+ global:
+ extras:
+ monitoring:
+ enabled: true
+ image:
+ registry: {{ coalesce .Values.repositories.image.registryOpencodeDeEnterprise .Values.global.imageRegistry .Values.images.openxchangeCoreMW.registry | quote }}
+ update:
+ image:
+ registry: {{ coalesce .Values.repositories.image.registryOpencodeDeEnterprise .Values.global.imageRegistry .Values.images.openxchangeCoreMW.registry | quote }}
+...
diff --git a/helmfile/apps/opendesk-migrations-post/helmfile-child.yaml.gotmpl b/helmfile/apps/opendesk-migrations-post/helmfile-child.yaml.gotmpl
index 896844c4..3669867b 100644
--- a/helmfile/apps/opendesk-migrations-post/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/opendesk-migrations-post/helmfile-child.yaml.gotmpl
@@ -21,9 +21,9 @@ releases:
values:
- "values.yaml.gotmpl"
- "../../shared/migrations.yaml.gotmpl"
- {{ range .Values.customization.release.migrationsPost }}
+ {{- range .Values.customization.release.migrationsPost }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.migrations.enabled }}
timeout: 900
diff --git a/helmfile/apps/opendesk-migrations-post/helmfile.yaml.gotmpl b/helmfile/apps/opendesk-migrations-post/helmfile.yaml.gotmpl
index 2021af07..4c93974d 100644
--- a/helmfile/apps/opendesk-migrations-post/helmfile.yaml.gotmpl
+++ b/helmfile/apps/opendesk-migrations-post/helmfile.yaml.gotmpl
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/opendesk-migrations-pre/helmfile-child.yaml.gotmpl b/helmfile/apps/opendesk-migrations-pre/helmfile-child.yaml.gotmpl
index b6b2e70a..fc470311 100644
--- a/helmfile/apps/opendesk-migrations-pre/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/opendesk-migrations-pre/helmfile-child.yaml.gotmpl
@@ -21,9 +21,9 @@ releases:
values:
- "values.yaml.gotmpl"
- "../../shared/migrations.yaml.gotmpl"
- {{ range .Values.customization.release.migrationsPre }}
+ {{- range .Values.customization.release.migrationsPre }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.migrations.enabled }}
timeout: 900
diff --git a/helmfile/apps/opendesk-migrations-pre/helmfile.yaml.gotmpl b/helmfile/apps/opendesk-migrations-pre/helmfile.yaml.gotmpl
index 2021af07..4c93974d 100644
--- a/helmfile/apps/opendesk-migrations-pre/helmfile.yaml.gotmpl
+++ b/helmfile/apps/opendesk-migrations-pre/helmfile.yaml.gotmpl
@@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/opendesk-openproject-bootstrap/helmfile-child.yaml.gotmpl b/helmfile/apps/opendesk-openproject-bootstrap/helmfile-child.yaml.gotmpl
index 62bac7a3..aac1d7c6 100644
--- a/helmfile/apps/opendesk-openproject-bootstrap/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/opendesk-openproject-bootstrap/helmfile-child.yaml.gotmpl
@@ -20,9 +20,9 @@ releases:
waitForJobs: true
values:
- "values.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskOpenprojectBootstrap }}
+ {{- range .Values.customization.release.opendeskOpenprojectBootstrap }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.openproject.enabled }}
timeout: 900
diff --git a/helmfile/apps/opendesk-openproject-bootstrap/helmfile.yaml.gotmpl b/helmfile/apps/opendesk-openproject-bootstrap/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/opendesk-openproject-bootstrap/helmfile.yaml.gotmpl
+++ b/helmfile/apps/opendesk-openproject-bootstrap/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/opendesk-services/helmfile-child.yaml.gotmpl b/helmfile/apps/opendesk-services/helmfile-child.yaml.gotmpl
index a7f622a1..bedf8cba 100644
--- a/helmfile/apps/opendesk-services/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/opendesk-services/helmfile-child.yaml.gotmpl
@@ -68,9 +68,9 @@ releases:
version: "{{ .Values.charts.otterize.version }}"
values:
- "values-otterize.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskOtterize }}
+ {{- range .Values.customization.release.opendeskOtterize }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.security.otterizeIntents.enabled }}
timeout: 900
@@ -79,9 +79,9 @@ releases:
version: "{{ .Values.charts.home.version }}"
values:
- "values-home.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskHome }}
+ {{- range .Values.customization.release.opendeskHome }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.home.enabled }}
- name: "opendesk-certificates"
@@ -89,9 +89,9 @@ releases:
version: "{{ .Values.charts.certificates.version }}"
values:
- "values-certificates.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskCertificates }}
+ {{- range .Values.customization.release.opendeskCertificates }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.certificates.enabled }}
timeout: 900
@@ -100,9 +100,9 @@ releases:
version: "{{ .Values.charts.opendeskAlerts.version }}"
values:
- "values-opendesk-alerts.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskAlerts}}
+ {{- range .Values.customization.release.opendeskAlerts }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.monitoring.prometheus.prometheusRules.enabled }}
timeout: 900
@@ -111,7 +111,9 @@ releases:
version: "{{ .Values.charts.opendeskDashboards.version }}"
values:
- "values-opendesk-dashboards.yaml.gotmpl"
- - {{ .Values.customization.release.opendeskDashboards | default "additionalValues: false" }}
+ {{- range .Values.customization.release.opendeskDashboards }}
+ - {{ . }}
+ {{- end }}
installed: {{ .Values.monitoring.grafana.dashboards.enabled }}
timeout: 900
@@ -120,7 +122,9 @@ releases:
version: "{{ .Values.charts.opendeskStaticFiles.version }}"
values:
- "values-opendesk-static-files.yaml.gotmpl"
- - {{ .Values.customization.release.opendeskStaticFiles | default "additionalValues: false" }}
+ {{- range .Values.customization.release.opendeskStaticFiles }}
+ - {{ . }}
+ {{- end }}
installed: {{ .Values.staticFiles.enabled }}
timeout: 900
diff --git a/helmfile/apps/opendesk-services/helmfile.yaml.gotmpl b/helmfile/apps/opendesk-services/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/opendesk-services/helmfile.yaml.gotmpl
+++ b/helmfile/apps/opendesk-services/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/openproject/helmfile-child.yaml.gotmpl b/helmfile/apps/openproject/helmfile-child.yaml.gotmpl
index ab25fcb7..a5aa8a9f 100644
--- a/helmfile/apps/openproject/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/openproject/helmfile-child.yaml.gotmpl
@@ -20,9 +20,9 @@ releases:
waitForJobs: true
values:
- "values.yaml.gotmpl"
- {{ range .Values.customization.release.openproject }}
+ {{- range .Values.customization.release.openproject }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.openproject.enabled }}
timeout: 1800
diff --git a/helmfile/apps/openproject/helmfile.yaml.gotmpl b/helmfile/apps/openproject/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/openproject/helmfile.yaml.gotmpl
+++ b/helmfile/apps/openproject/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/openproject/values.yaml.gotmpl b/helmfile/apps/openproject/values.yaml.gotmpl
index 665a7047..ca7a0013 100644
--- a/helmfile/apps/openproject/values.yaml.gotmpl
+++ b/helmfile/apps/openproject/values.yaml.gotmpl
@@ -38,6 +38,9 @@ dbInit:
{{ .Values.resources.openprojectDbInit | toYaml | nindent 4 }}
environment:
+ {{- if and (env "OPENDESK_ENTERPRISE") .Values.enterpriseKeys.openproject.token }}
+ OPENPROJECT_ENTERPRISE__TOKEN: {{ .Values.enterpriseKeys.openproject.token | quote }}
+ {{- end }}
# For more details and more options see
# https://www.openproject.org/docs/installation-and-operations/configuration/environment/
OPENPROJECT_APP__TITLE: "Projekte - {{ .Values.theme.texts.productName }}"
diff --git a/helmfile/apps/services-external/helmfile-child.yaml.gotmpl b/helmfile/apps/services-external/helmfile-child.yaml.gotmpl
index 397b68a3..6e116c29 100644
--- a/helmfile/apps/services-external/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/services-external/helmfile-child.yaml.gotmpl
@@ -100,9 +100,9 @@ releases:
version: "{{ .Values.charts.redis.version }}"
values:
- "values-redis.yaml.gotmpl"
- {{ range .Values.customization.release.redis }}
+ {{- range .Values.customization.release.redis }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.redis.enabled }}
timeout: 900
@@ -111,9 +111,9 @@ releases:
version: "{{ .Values.charts.memcached.version }}"
values:
- "values-memcached.yaml.gotmpl"
- {{ range .Values.customization.release.memcached }}
+ {{- range .Values.customization.release.memcached }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.memcached.enabled }}
timeout: 900
@@ -122,9 +122,9 @@ releases:
version: "{{ .Values.charts.postgresql.version }}"
values:
- "values-postgresql.yaml.gotmpl"
- {{ range .Values.customization.release.postgresql }}
+ {{- range .Values.customization.release.postgresql }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.postgresql.enabled }}
timeout: 900
@@ -133,9 +133,9 @@ releases:
version: "{{ .Values.charts.mariadb.version }}"
values:
- "values-mariadb.yaml.gotmpl"
- {{ range .Values.customization.release.mariadb }}
+ {{- range .Values.customization.release.mariadb }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.mariadb.enabled }}
timeout: 900
@@ -144,9 +144,9 @@ releases:
version: "{{ .Values.charts.postfix.version }}"
values:
- "values-postfix.yaml.gotmpl"
- {{ range .Values.customization.release.postfix }}
+ {{- range .Values.customization.release.postfix }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.postfix.enabled }}
timeout: 900
@@ -155,9 +155,9 @@ releases:
version: "{{ .Values.charts.dkimpy.version }}"
values:
- "values-dkimpy.yaml.gotmpl"
- {{ range .Values.customization.release.opendeskDkimpyMilter }}
+ {{- range .Values.customization.release.opendeskDkimpyMilter }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.dkimpy.enabled }}
timeout: 900
@@ -166,9 +166,9 @@ releases:
version: "{{ .Values.charts.clamav.version }}"
values:
- "values-clamav-distributed.yaml.gotmpl"
- {{ range .Values.customization.release.clamav }}
+ {{- range .Values.customization.release.clamav }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.clamavDistributed.enabled }}
timeout: 900
@@ -177,9 +177,9 @@ releases:
version: "{{ .Values.charts.clamavSimple.version }}"
values:
- "values-clamav-simple.yaml.gotmpl"
- {{ range .Values.customization.release.clamavSimple }}
+ {{- range .Values.customization.release.clamavSimple }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.clamavSimple.enabled }}
timeout: 900
@@ -188,9 +188,9 @@ releases:
version: "{{ .Values.charts.minio.version }}"
values:
- "values-minio.yaml.gotmpl"
- {{ range .Values.customization.release.minio }}
+ {{- range .Values.customization.release.minio }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.minio.enabled }}
timeout: 900
@@ -199,9 +199,10 @@ releases:
chart: "cassandra-repo/{{ .Values.charts.cassandra.name }}"
version: "{{ .Values.charts.cassandra.version }}"
values:
- {{ range .Values.customization.release.cassandra }}
+ - "values-cassandra.yaml.gotmpl"
+ {{- range .Values.customization.release.cassandra }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.cassandra.enabled }}
timeout: 900
diff --git a/helmfile/apps/services-external/helmfile.yaml.gotmpl b/helmfile/apps/services-external/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/services-external/helmfile.yaml.gotmpl
+++ b/helmfile/apps/services-external/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/services-external/values-cassandra.yaml.gotmpl b/helmfile/apps/services-external/values-cassandra.yaml.gotmpl
new file mode 100644
index 00000000..9e0d05fe
--- /dev/null
+++ b/helmfile/apps/services-external/values-cassandra.yaml.gotmpl
@@ -0,0 +1,98 @@
+{{/*
+SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+SPDX-License-Identifier: Apache-2.0
+*/}}
+---
+containerSecurityContext:
+ enabled: true
+ allowPrivilegeEscalation: false
+ capabilities:
+ drop:
+ - "ALL"
+ privileged: false
+ readOnlyRootFilesystem: true
+ runAsGroup: 1001
+ runAsNonRoot: true
+ runAsUser: 1001
+ seccompProfile:
+ type: "RuntimeDefault"
+ seLinuxOptions:
+ {{ .Values.seLinuxOptions.cassandra | toYaml | nindent 4 }}
+
+dbUser:
+ user: "root"
+ password: {{ .Values.secrets.cassandra.rootPassword | quote }}
+
+global:
+ imagePullSecrets:
+ {{ .Values.global.imagePullSecrets | toYaml | nindent 4 }}
+
+image:
+ registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.cassandra.registry | quote }}
+ repository: {{ .Values.images.cassandra.repository | quote }}
+ tag: {{ .Values.images.cassandra.tag | quote }}
+ pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
+
+initDB:
+ initUserData.cql: >
+ CREATE KEYSPACE IF NOT EXISTS {{ .Values.databases.dovecot.name | quote }} WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };
+ CREATE ROLE IF NOT EXISTS {{ .Values.databases.dovecot.username | quote }};
+ ALTER ROLE {{ .Values.databases.dovecot.username | quote }} WITH PASSWORD = {{ regexReplaceAll "'" .Values.secrets.cassandra.dovecotUser "''" | squote }} AND LOGIN = true;
+ GRANT ALL ON KEYSPACE {{ .Values.databases.dovecot.name | quote }} TO {{ .Values.databases.dovecot.username | quote }};
+
+# Will print a warning if unset but is automatically calculated:
+jvm:
+ maxHeapSize: ""
+ newHeapSize: ""
+
+livenessProbe:
+ enabled: true
+ initialDelaySeconds: 60
+ periodSeconds: 30
+ timeoutSeconds: 30
+ successThreshold: 1
+ failureThreshold: 5
+
+metrics:
+ enabled: false
+ image:
+ registry: {{ coalesce .Values.repositories.image.dockerHub .Values.global.imageRegistry .Values.images.cassandraExporter.registry | quote }}
+ repository: {{ .Values.images.cassandraExporter.repository | quote }}
+ tag: {{ .Values.images.cassandraExporter.tag | quote }}
+ pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
+
+persistence:
+ commitLogsize: {{ .Values.persistence.storages.cassandra.commitLogsize | quote }}
+ size: {{ .Values.persistence.storages.cassandra.size | quote }}
+ storageClass: {{ coalesce .Values.persistence.storages.cassandra.storageClassName .Values.persistence.storageClassNames.RWO | quote }}
+
+podAnnotations: {}
+
+podSecurityContext:
+ enabled: true
+ fsGroup: 1001
+ fsGroupChangePolicy: "Always"
+ supplementalGroups: []
+ sysctls: []
+
+readinessProbe:
+ enabled: true
+ initialDelaySeconds: 60
+ periodSeconds: 10
+ timeoutSeconds: 30
+ successThreshold: 1
+ failureThreshold: 5
+
+replicaCount: {{ .Values.replicas.cassandra }}
+
+resources:
+ {{ .Values.resources.cassandra | toYaml | nindent 2 }}
+
+startupProbe:
+ enabled: false
+ initialDelaySeconds: 0
+ periodSeconds: 10
+ timeoutSeconds: 5
+ successThreshold: 1
+ failureThreshold: 60
+...
diff --git a/helmfile/apps/xwiki/helmfile-child.yaml.gotmpl b/helmfile/apps/xwiki/helmfile-child.yaml.gotmpl
index 57bbaea2..52741801 100644
--- a/helmfile/apps/xwiki/helmfile-child.yaml.gotmpl
+++ b/helmfile/apps/xwiki/helmfile-child.yaml.gotmpl
@@ -11,7 +11,7 @@ repositories:
password: {{ env "OD_PRIVATE_REGISTRY_PASSWORD" | quote }}
oci: true
url: "{{ .Values.global.helmRegistry | default .Values.charts.xwiki.registry }}/{{ .Values.charts.xwiki.repository }}"
-
+
releases:
- name: "xwiki"
chart: "xwiki-repo/{{ .Values.charts.xwiki.name }}"
@@ -19,9 +19,9 @@ releases:
wait: true
values:
- "values.yaml.gotmpl"
- {{ range .Values.customization.release.xwiki }}
+ {{- range .Values.customization.release.xwiki }}
- {{ . }}
- {{ end }}
+ {{- end }}
installed: {{ .Values.xwiki.enabled }}
timeout: 1800
diff --git a/helmfile/apps/xwiki/helmfile.yaml.gotmpl b/helmfile/apps/xwiki/helmfile.yaml.gotmpl
index 119da8a5..bf495635 100644
--- a/helmfile/apps/xwiki/helmfile.yaml.gotmpl
+++ b/helmfile/apps/xwiki/helmfile.yaml.gotmpl
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: Apache-2.0
---
bases:
- - "../../bases/environments.yaml"
+ - "../../bases/environments.yaml.gotmpl"
---
helmfiles:
- path: "./helmfile-child.yaml.gotmpl"
diff --git a/helmfile/apps/xwiki/values.yaml.gotmpl b/helmfile/apps/xwiki/values.yaml.gotmpl
index af4f0bc0..b48d7517 100644
--- a/helmfile/apps/xwiki/values.yaml.gotmpl
+++ b/helmfile/apps/xwiki/values.yaml.gotmpl
@@ -17,12 +17,15 @@ image:
pullPolicy: {{ .Values.global.imagePullPolicy | quote }}
imagePullSecrets: {{ .Values.global.imagePullSecrets }}
-{{- if .Values.certificate.selfSigned }}
javaOpts:
+ {{- if and (env "OPENDESK_ENTERPRISE") .Values.enterprise.xwiki.opendeskEnterpriseLicense .Values.enterprise.xwiki.proApplicationslicense }}
+ - "-Dlicenses={{ .Values.enterpriseKeys.xwiki.opendeskEnterpriseLicense }},{{ .Values.enterpriseKeys.xwiki.proApplicationslicense }}"
+ {{- end }}
+ {{- if .Values.certificate.selfSigned }}
- "-Djavax.net.ssl.trustStore=/etc/ssl/certs/truststore.jks"
- "-Djavax.net.ssl.trustStoreType=jks"
- {{ printf "%s=%s" "-Djavax.net.ssl.trustStorePassword" .Values.secrets.certificates.password | quote }}
-{{- end }}
+ {{- end }}
externalDB:
{{- if eq .Values.databases.xwiki.type "mariadb" }}
@@ -83,6 +86,9 @@ customConfigs:
xwiki.authentication.ldap.fields_mapping: "last_name=sn,first_name=givenName,email=mailPrimaryAddress"
xwiki.properties:
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ distribution.defaultUI: "com.xwiki.projects.swp:xwiki-swp-flavor-enterprise-main"
+ {{- end }}
wikiInitializer.initialRequest.xwiki.url: "https://{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}/distribution/"
wikiInitializer.initialRequest.xwiki.contextPath: "/"
wikiInitializer.initialRequest.xwiki.remoteAddress: "{{ .Values.global.hosts.xwiki }}.{{ .Values.global.domain }}"
diff --git a/helmfile/bases/environments.yaml b/helmfile/bases/environments.yaml.gotmpl
similarity index 53%
rename from helmfile/bases/environments.yaml
rename to helmfile/bases/environments.yaml.gotmpl
index 31dc3333..4e5834b1 100644
--- a/helmfile/bases/environments.yaml
+++ b/helmfile/bases/environments.yaml.gotmpl
@@ -5,16 +5,28 @@ environments:
default:
values:
- "../../environments/default/*.yaml.gotmpl"
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "../../environments/default-enterprise-overrides/*.yaml.gotmpl"
+ {{- end }}
dev:
values:
- "../../environments/default/*.yaml.gotmpl"
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "../../environments/default-enterprise-overrides/*.yaml.gotmpl"
+ {{- end }}
- "../../environments/dev/*.yaml.gotmpl"
test:
values:
- "../../environments/default/*.yaml.gotmpl"
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "../../environments/default-enterprise-overrides/*.yaml.gotmpl"
+ {{- end }}
- "../../environments/test/*.yaml.gotmpl"
prod:
values:
- "../../environments/default/*.yaml.gotmpl"
+ {{- if (env "OPENDESK_ENTERPRISE") }}
+ - "../../environments/default-enterprise-overrides/*.yaml.gotmpl"
+ {{- end }}
- "../../environments/prod/*.yaml.gotmpl"
...
diff --git a/helmfile/environments/default-enterprise-overrides/charts.yaml.gotmpl b/helmfile/environments/default-enterprise-overrides/charts.yaml.gotmpl
new file mode 100644
index 00000000..2d619211
--- /dev/null
+++ b/helmfile/environments/default-enterprise-overrides/charts.yaml.gotmpl
@@ -0,0 +1,11 @@
+# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+# SPDX-License-Identifier: Apache-2.0
+---
+charts:
+ oxAppSuite:
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/charts-mirror"
+ name: "appsuite-public-sector-pro-chart"
+ version: "1.10.114"
+ verify: false
+...
diff --git a/helmfile/environments/default-enterprise-overrides/images.yaml.gotmpl b/helmfile/environments/default-enterprise-overrides/images.yaml.gotmpl
new file mode 100644
index 00000000..87543f0f
--- /dev/null
+++ b/helmfile/environments/default-enterprise-overrides/images.yaml.gotmpl
@@ -0,0 +1,17 @@
+# SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+# SPDX-License-Identifier: Apache-2.0
+---
+images:
+ collabora:
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/collabora/images/collabora-online-for-opendesk"
+ tag: "24.04.9.4.2@sha256:7c38f2568855ec33c11296d65384766230ea3097a245a60b9e8b0b62cb9cc17f"
+ nextcloud:
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/nextcloud/images/opendesk-nextcloud"
+ tag: "1.0.5@sha256:a541b29dad10deb99dbae6c3a463e994a054ac5c7ffc0a5c524c7b0f65544748"
+ openxchangeCoreMW:
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/open-xchange/images-mirror/core-mw"
+ tag: "8.30.63@sha256:181fcb31f500f88573e6b735587b52df906199337fa62aeee1e64aacdc64f548"
+...
diff --git a/helmfile/environments/default-enterprise-overrides/resources.yaml.gotmpl b/helmfile/environments/default-enterprise-overrides/resources.yaml.gotmpl
new file mode 100644
index 00000000..8b12b4dd
--- /dev/null
+++ b/helmfile/environments/default-enterprise-overrides/resources.yaml.gotmpl
@@ -0,0 +1,13 @@
+# SPDX-FileCopyrightText: 2024-2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+# SPDX-License-Identifier: Apache-2.0
+---
+resources:
+ collabora:
+ # When using CollaboraController for autoscaling, `targetMemoryUtilizationPercentage` and
+ # `targetCPUUtilizationPercentage` defined at `enterpriseFeatures.collabora.autoscaling`
+ # are checked against the values defined below under `requests`, so please ensure you set these
+ # appropriately to avoid unnecessary scaling.
+ requests:
+ cpu: 3
+ memory: "3Gi"
+...
diff --git a/helmfile/environments/default/charts.yaml.gotmpl b/helmfile/environments/default/charts.yaml.gotmpl
index 8b4c3c42..e82c7aaf 100644
--- a/helmfile/environments/default/charts.yaml.gotmpl
+++ b/helmfile/environments/default/charts.yaml.gotmpl
@@ -7,11 +7,14 @@
---
charts:
cassandra:
- # Component is required for openDesk Enterprise only.
- registry: ""
- repository: ""
- name: ""
- version: ""
+ # providerCategory: "Community"
+ # providerResponsible: "openDesk"
+ # upstreamRegistry: "https://registry-1.docker.io"
+ # upstreamRepository: "bitnamicharts/cassandra"
+ registry: "registry.opencode.de"
+ repository: "bmi/opendesk/components/external/charts/bitnami-charts"
+ name: "cassandra"
+ version: "12.0.4"
verify: true
certificates:
# providerCategory: "Platform"
@@ -56,12 +59,14 @@ charts:
version: "1.1.21"
verify: true
collaboraController:
- # Component is required for openDesk Enterprise only.
- registry: ""
- repository: ""
- name: ""
- version: ""
- verify: true
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Collabora"
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/collabora/charts-mirror"
+ name: "cool-controller"
+ version: "1.1.1"
+ verify: false
cryptpad:
# providerCategory: "Supplier"
# providerResponsible: "XWiki"
@@ -447,8 +452,8 @@ charts:
version: "18.6.1"
verify: true
synapse:
- # providerCategory: "Platform"
- # providerResponsible: "openDesk"
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
# upstreamRegistry: "https://registry.opencode.de"
# upstreamRepository: "bmi/opendesk/components/platform-development/charts/opendesk-element/opendesk-synapse"
registry: "registry.opencode.de"
@@ -457,18 +462,22 @@ charts:
version: "6.0.2"
verify: true
synapseAdmin:
- # Component is required for openDesk Enterprise only.
- registry: ""
- repository: ""
- name: ""
- version: ""
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
+ name: "opendesk-synapse-admin"
+ version: "5.0.1"
verify: true
synapseAdminbotWeb:
- # Component is required for openDesk Enterprise only.
- registry: ""
- repository: ""
- name: ""
- version: ""
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
+ name: "opendesk-synapse-adminbot-web"
+ version: "5.0.1"
verify: true
synapseCreateAccount:
# providerCategory: "Platform"
@@ -481,18 +490,22 @@ charts:
version: "6.0.2"
verify: true
synapseGroupsync:
- # Component is required for openDesk Enterprise only.
- registry: ""
- repository: ""
- name: ""
- version: ""
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
+ name: "opendesk-synapse-groupsync"
+ version: "5.0.1"
verify: true
synapsePipe:
- # Component is required for openDesk Enterprise only.
- registry: ""
- repository: ""
- name: ""
- version: ""
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "bmi/opendesk/components/platform-development/charts/opendesk-element"
+ name: "opendesk-synapse-pipe"
+ version: "5.0.1"
verify: true
synapseWeb:
# providerCategory: "Platform"
diff --git a/helmfile/environments/default/database.yaml.gotmpl b/helmfile/environments/default/database.yaml.gotmpl
index f3f25365..a71c07fe 100644
--- a/helmfile/environments/default/database.yaml.gotmpl
+++ b/helmfile/environments/default/database.yaml.gotmpl
@@ -6,6 +6,14 @@
databases:
defaults:
userConnectionLimit: 100
+ dovecot:
+ type: "cassandra"
+ name: "dovecot"
+ host: "cassandra"
+ port: 9042
+ username: "dovecot_user"
+ password: ""
+ connectionLimit: ~
keycloak:
type: "postgresql"
name: "keycloak"
diff --git a/helmfile/environments/default/enterprise_features.yaml.gotmpl b/helmfile/environments/default/enterprise_features.yaml.gotmpl
new file mode 100644
index 00000000..f6334a8c
--- /dev/null
+++ b/helmfile/environments/default/enterprise_features.yaml.gotmpl
@@ -0,0 +1,15 @@
+# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+# SPDX-License-Identifier: Apache-2.0
+---
+enterpriseFeatures:
+ collabora:
+ # Collabora autoscaling can be configured here. To enable autoscaling enable the Collabora
+ # Controller, see `opendesk_main.yaml.gotmpl` for reference.
+ autoscaling:
+ minReplicas: 1
+ maxReplicas: 4
+ scaleDownDisabled: false
+ targetMemoryUtilizationPercentage: 99
+ targetCPUUtilizationPercentage: 99
+
+...
diff --git a/helmfile/environments/default/enterprise_keys.yaml.gotmpl b/helmfile/environments/default/enterprise_keys.yaml.gotmpl
new file mode 100644
index 00000000..b1c5b2b3
--- /dev/null
+++ b/helmfile/environments/default/enterprise_keys.yaml.gotmpl
@@ -0,0 +1,20 @@
+# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+# SPDX-License-Identifier: Apache-2.0
+# The variables set in this file are required to upgrade components to their "Enterprise" product variant.
+---
+enterpriseKeys:
+ openproject:
+ # Enterprise token must match the deployment's OpenProject host name.
+ token: ~
+ xwiki:
+ # Per instance their must be a unique set of keys.
+ opendeskEnterpriseLicense: ""
+ proApplicationslicense: ""
+ nextcloud:
+ # Subscription key can be used for all customer owned instances, the number of users
+ # from all instances and is limited by the number of users the key was bought for.
+ subscriptionKey: ""
+ # Subscription data is required for air gapped installations.
+ subscriptionData: ""
+
+...
diff --git a/helmfile/environments/default/global.yaml.gotmpl b/helmfile/environments/default/global.yaml.gotmpl
index a616017e..4ad0d04b 100644
--- a/helmfile/environments/default/global.yaml.gotmpl
+++ b/helmfile/environments/default/global.yaml.gotmpl
@@ -31,6 +31,7 @@ global:
# deployment.
#
hosts:
+ adminBot: "adminbot"
collabora: "office"
cryptpad: "pad"
element: "chat"
@@ -50,6 +51,7 @@ global:
openxchange: "webmail"
static: "static"
synapse: "matrix"
+ synapseAdmin: "synapse-admin"
synapseFederation: "matrix-federation"
whiteboard: "whiteboard"
xwiki: "wiki"
diff --git a/helmfile/environments/default/images.yaml.gotmpl b/helmfile/environments/default/images.yaml.gotmpl
index 9706ef37..419c9fd7 100644
--- a/helmfile/environments/default/images.yaml.gotmpl
+++ b/helmfile/environments/default/images.yaml.gotmpl
@@ -1,4 +1,4 @@
-# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH
+# SPDX-FileCopyrightText: 2024-2025 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
#
@@ -13,6 +13,22 @@ images:
registry: "registry-1.docker.io"
repository: "bitnami/os-shell"
tag: "12-debian-12-r34@sha256:41e0561b0f08011c24acc5e8ad4c0d09a36062cfab35d9ec7b3fdd4cfecc01e0"
+ cassandra:
+ # providerCategory: "Community"
+ # providerResponsible: "openDesk"
+ # upstreamRegistry: "https://registry-1.docker.io"
+ # upstreamRepository: "bitnami/cassandra"
+ registry: "registry-1.docker.io"
+ repository: "bitnami/cassandra"
+ tag: "5.0.2-debian-12-r1@sha256:9f5fd6fe3a24b7e5ea215a99a0e0d6a10d11a914d6eb8c511780271a9097f5ea"
+ cassandraExporter:
+ # providerCategory: "Community"
+ # providerResponsible: "openDesk"
+ # upstreamRegistry: "https://registry-1.docker.io"
+ # upstreamRepository: "bitnami/cassandra-exporter"
+ registry: "registry-1.docker.io"
+ repository: "bitnami/cassandra-exporter"
+ tag: "2.3.8-debian-12-r31@sha256:ae861f6c8712dd32c2304c680e4564802df689a62dc4aed2f4e7cfcbba8a8051"
clamd:
# providerCategory: "Community"
# providerResponsible: "openDesk"
@@ -29,6 +45,13 @@ images:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/collabora/images/collabora-online-for-opendesk"
tag: "24.04.9.2.1@sha256:749917bf9146d8507b3a63d422a30ebe4f499700421c30527e32f322a015c73d"
+ collaboraController:
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Collabora"
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/collabora/images-mirror/cool-controller"
+ tag: "1.1.0@sha256:dfbbb6a9bfac94d39bd735eb143084803a774d2fc673a138bf08d4044e8d942a"
cryptpad:
# providerCategory: "Supplier"
# providerResponsible: "XWiki"
@@ -62,6 +85,48 @@ images:
registry: "registry.opencode.de"
repository: "bmi/opendesk/components/supplier/nordeck/images/opendesk-element-web"
tag: "1.11.7@sha256:c5881cea86a721252e724000e4ed870cae66f9b3eabc45074e1f43b1818423bc"
+ elementAdminBot:
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/element/images-mirror/access_element_web"
+ tag: "v1.11.85@sha256:0e36121cbaab5a8146ef8561d8e77b38f711f855f1a353df3bb96a8d13303812"
+ elementGroupsync:
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/element/images-mirror/groupsync"
+ tag: "v0.14.0@sha256:a8cee92b9035d8cc80cc13194e4e0118c7dfbfcbc4c0ee5ac173582d0cd55846"
+ elementHaProxy:
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/element/images-mirror/haproxy"
+ tag: "3.0-alpine@sha256:c22c8710886104a48b920306f063401f0d11811858e3c6b9d87d88a7556b2e61"
+ elementPipe:
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/element/images-mirror/pipe"
+ tag: "6.3.1@sha256:7f487af25f220d31aa987665f9d1393b42e925c6b1a7e0458daaa91e8e7bf0c4"
+ elementSynapseAdmin:
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "zendis/opendesk-enterprise/components/supplier/element/images-mirror/synapse_admin"
+ tag: "v16.105.5-24.10@sha256:563979fc69162adf93f1286cf79dcbe58adf878a0e4e9332044e5ab6a7170350"
+ elementSyncAdmins:
+ # Enterprise Component
+ # providerCategory: "Supplier"
+ # providerResponsible: "Element"
+ registry: "registry.opencode.de"
+ repository: "bmi/opendesk/components/platform-development/images/opendesk-element-syncadmins"
+ tag: "1.0.3@sha256:1dea24d5f65a6f9ac63b402c772dd81dcd07a847d24845901c8a039461043097"
freshclam:
# providerCategory: "Community"
# providerResponsible: "openDesk"
diff --git a/helmfile/environments/default/opendesk_main.yaml.gotmpl b/helmfile/environments/default/opendesk_main.yaml.gotmpl
index f803af51..ba8003da 100644
--- a/helmfile/environments/default/opendesk_main.yaml.gotmpl
+++ b/helmfile/environments/default/opendesk_main.yaml.gotmpl
@@ -4,6 +4,9 @@
#
# Note: Currently only single namespace deployments are supported.
---
+cassandra:
+ enabled: {{ if (env "OPENDESK_ENTERPRISE") }}true{{ else }}false{{ end }}
+ namespace: ~
certificates:
enabled: true
namespace: ~
@@ -16,6 +19,9 @@ clamavSimple:
collabora:
enabled: true
namespace: ~
+collaboraController:
+ enabled: {{ if (env "OPENDESK_ENTERPRISE") }}true{{ else }}false{{ end }}
+ namespace: ~
cryptpad:
enabled: true
namespace: ~
@@ -28,6 +34,12 @@ dovecot:
element:
enabled: true
namespace: ~
+elementAdmin:
+ enabled: {{ if (env "OPENDESK_ENTERPRISE") }}true{{ else }}false{{ end }}
+ namespace: ~
+elementGroupsync:
+ enabled: {{ if (env "OPENDESK_ENTERPRISE") }}true{{ else }}false{{ end }}
+ namespace: ~
home:
enabled: true
namespace: ~
@@ -76,18 +88,4 @@ staticFiles:
xwiki:
enabled: true
namespace: ~
-
-# openDesk Enterprise Components
-cassandra:
- enabled: false
- namespace: ~
-elementAdmin:
- enabled: false
- namespace: ~
-elementGroupsync:
- enabled: false
- namespace: ~
-collaboraController:
- enabled: false
- namespace: ~
...
diff --git a/helmfile/environments/default/persistence.yaml.gotmpl b/helmfile/environments/default/persistence.yaml.gotmpl
index af3dba59..5a948e43 100644
--- a/helmfile/environments/default/persistence.yaml.gotmpl
+++ b/helmfile/environments/default/persistence.yaml.gotmpl
@@ -8,6 +8,10 @@ persistence:
RWO: ""
storages:
+ cassandra:
+ data: "1Gi"
+ commitLogsize: "256Mi"
+ storageClassName: ~
clamav:
size: "1Gi"
storageClassName: ~
diff --git a/helmfile/environments/default/replicas.yaml.gotmpl b/helmfile/environments/default/replicas.yaml.gotmpl
index 74136ad8..52cda218 100644
--- a/helmfile/environments/default/replicas.yaml.gotmpl
+++ b/helmfile/environments/default/replicas.yaml.gotmpl
@@ -5,6 +5,9 @@
# When adding new components in here, do not forget to add them as well to
# `../test/values.yaml.gotmpl` to ensure their linting coverage.
replicas:
+ # -- component: Cassandra
+ # -- scalable: tbd
+ cassandra: 1
# -- component: Antivirus (ClamAV)
# -- scalable: true
# -- comment: clamav-simple - supports `ReadWriteOnce` PVCs.
@@ -25,7 +28,13 @@ replicas:
# -- component: Weboffice (Collabora)
# -- scalable: true
+ # -- comment: If Collabora Controller is enabled, Collabora is autoscaling and the value below will be ignored.
+ # Please check `enterpriseFeatures.collabora.autoscaling` for autoscaling settings.
collabora: 1
+ # -- scalable: true
+ # -- comment: Load between Collabora Controller Pods is going to one Pod (the leader) only, therefore raise the number
+ # e.g. to `2` for high availability of the Collabora Controller.
+ collaboraController: 1
# -- component: Pad (CryptPad)
# -- scalable: false
@@ -190,6 +199,8 @@ replicas:
# -- scalable: tbd
openxchangeNextcloudIntegrationUI: 1
# -- scalable: tbd
+ openxchangePluginsUI: 1
+ # -- scalable: tbd
openxchangePublicSectorUI: 1
# -- component: Knowledge management (XWiki)
diff --git a/helmfile/environments/default/repositories.yaml.gotmpl b/helmfile/environments/default/repositories.yaml.gotmpl
index dd37c8df..0bacc09a 100644
--- a/helmfile/environments/default/repositories.yaml.gotmpl
+++ b/helmfile/environments/default/repositories.yaml.gotmpl
@@ -7,10 +7,12 @@ repositories:
image:
dockerHub: ""
registryOpencodeDe: ""
+ registryOpencodeDeEnterprise: "registry.opencode.de"
# Fine-granular registry settings, useful when you can't use virtual (Artifactory) or group (Nexus) repositories.
# Higher precedence than `global.imageRegistry`
helm:
registryOpencodeDe: ""
+ registryOpencodeDeEnterprise: "registry.opencode.de"
# ClamAV registry settings
clamav:
auth: {}
diff --git a/helmfile/environments/default/resources.yaml.gotmpl b/helmfile/environments/default/resources.yaml.gotmpl
index 219a1e41..7ad853dd 100644
--- a/helmfile/environments/default/resources.yaml.gotmpl
+++ b/helmfile/environments/default/resources.yaml.gotmpl
@@ -1,9 +1,17 @@
+# SPDX-FileCopyrightText: 2024-2025 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
---
# Some charts do not support null or ~ values, because they use their default values.
# To not limit the CPU, we set all CPU limits to 99.
resources:
+ cassandra:
+ limits:
+ cpu: 99
+ memory: "4Gi"
+ requests:
+ cpu: 0.1
+ memory: "1Gi"
clamd:
limits:
cpu: 99
@@ -18,6 +26,13 @@ resources:
requests:
cpu: 0.5
memory: "512Mi"
+ collaboraController:
+ limits:
+ cpu: 99
+ memory: "128Mi"
+ requests:
+ cpu: 0.1
+ memory: "32Mi"
cryptpad:
limits:
cpu: 99
@@ -365,6 +380,13 @@ resources:
requests:
cpu: 0.01
memory: "32Mi"
+ openxchangePluginsUI:
+ limits:
+ cpu: 99
+ memory: "256Mi"
+ requests:
+ cpu: 0.05
+ memory: "32Mi"
openxchangePublicSectorUI:
limits:
cpu: 99
diff --git a/helmfile/environments/default/secrets.yaml.gotmpl b/helmfile/environments/default/secrets.yaml.gotmpl
index dcf49293..5e631c74 100644
--- a/helmfile/environments/default/secrets.yaml.gotmpl
+++ b/helmfile/environments/default/secrets.yaml.gotmpl
@@ -5,6 +5,10 @@ SPDX-License-Identifier: Apache-2.0
*/}}
---
secrets:
+ cassandra:
+ rootPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "cassandra" "root_password" | sha1sum | quote }}
+ dovecotUser: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "cassandra" "dovecot_user" | sha1sum | quote }}
+
oxAppSuite:
adminPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "ox_appsuite" "admin_password" | sha1sum | quote }}
basicAuthPassword: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "ox_appsuite" "basic_auth_password" | sha1sum | quote }}
@@ -26,6 +30,7 @@ secrets:
keycloak: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "nubus" "ldapsearch_keycloak" | sha1sum | quote }}
nextcloud: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "nubus" "ldapsearch_nextcloud" | sha1sum | quote }}
dovecot: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "nubus" "ldapsearch_dovecot" | sha1sum | quote }}
+ element: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "nubus" "ldapsearch_element" | sha1sum | quote }}
ox: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "nubus" "ldapsearch_ox" | sha1sum | quote }}
openproject: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "nubus" "ldapsearch_openproject" | sha1sum | quote }}
xwiki: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "nubus" "ldapsearch_xwiki" | sha1sum | quote }}
@@ -118,10 +123,22 @@ secrets:
intercom:
secret: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "intercom" "secret" | sha1sum | quote }}
synapseAsToken: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "intercom" "as_token" | sha1sum | quote }}
+ matrixAdminBot:
+ backupPassphrase: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-admin-bot" "backupPassphrase" | sha1sum | quote }}
+ password: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-admin-bot" "password" | sha1sum | quote }}
+ synapseAsToken: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-admin-bot" "as_token" | sha1sum | quote }}
+ matrixAuditBot:
+ backupPassphrase: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-auditbot-bot" "backupPassphrase" | sha1sum | quote }}
+ password: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-auditbot-bot" "password" | sha1sum | quote }}
+ synapseAsToken: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-audit-bot" "as_token" | sha1sum | quote }}
+ matrixGroupsync:
+ synapseAsToken: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-groupsync" "as_token" | sha1sum | quote }}
matrixNeoDateFixBot:
password: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-neodatefix-bot" "password" | sha1sum | quote }}
matrixUserVerificationService:
password: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "matrix-user-verification-service" "password" | sha1sum | quote }}
+ synapse:
+ registrationSharedSecret: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "synapse" "registrationSharedSecret" | sha1sum | quote }}
certificates:
password: {{ derivePassword 1 "long" (env "MASTER_PASSWORD" | default "sovereign-workplace") "certificates" "password" | sha1sum | quote }}
notes:
diff --git a/helmfile/environments/default/selinux.yaml.gotmpl b/helmfile/environments/default/selinux.yaml.gotmpl
index 10d50867..2134c83d 100644
--- a/helmfile/environments/default/selinux.yaml.gotmpl
+++ b/helmfile/environments/default/selinux.yaml.gotmpl
@@ -6,10 +6,12 @@
# break the affected components with these settings.
---
seLinuxOptions:
+ cassandra: ~
clamavSimple: ~
clamav: ~
clamd: ~
collabora: ~
+ collaboraController: ~
cryptpad: ~
dkimpy: ~
dovecot: ~
@@ -56,6 +58,7 @@ seLinuxOptions:
openxchangeGuardUI: ~
openxchangeImageConverter: ~
openxchangeNextcloudIntegrationUI: ~
+ openxchangePluginsUI: ~
openxchangePublicSectorUI: ~
oxConnector: ~
postfix: ~