diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 52a00c5a..42593e8f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -189,8 +189,8 @@ variables: cache: {} dependencies: [] extends: ".environments" - image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:1.0.1\ - @sha256:d38f41b88374e055332860018f2936db8807b763caf6089735db0484cbb2842a" + image: "registry.opencode.de/bmi/opendesk/components/platform-development/images/helm:1.1.0\ + @sha256:74f349066ac5d20e3afaa6abd28781b4c8dc086f67e3d3c1b8345e4a9c3371b1" script: - "cd ${CI_PROJECT_DIR}/helmfile/apps/${COMPONENT}" # MASTER_PASSWORD_WEB_VAR as precedence for MASTER_PASSWORD diff --git a/docs/requirements.md b/docs/requirements.md index 2d95d376..fa3d1f90 100644 --- a/docs/requirements.md +++ b/docs/requirements.md @@ -24,7 +24,7 @@ openDesk is a Kubernetes only solution and requires an existing Kubernetes (K8s) - Domain and DNS Service - Ingress controller (Ingress NGINX) - [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 - Volume provisioner supporting RWO (read-write-once) - Certificate handling with [cert-manager](https://cert-manager.io/) diff --git a/helmfile/apps/collabora/helmfile-child.yaml.gotmpl b/helmfile/apps/collabora/helmfile-child.yaml.gotmpl index d2ee4cdf..80783a43 100644 --- a/helmfile/apps/collabora/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/collabora/helmfile-child.yaml.gotmpl @@ -18,6 +18,7 @@ releases: version: "{{ .Values.charts.collabora.version }}" values: - "values.yaml.gotmpl" + - {{ .Values.customization.release.collaboraOnline | default "additionalValues: false" }} installed: {{ .Values.collabora.enabled }} commonLabels: diff --git a/helmfile/apps/cryptpad/helmfile-child.yaml.gotmpl b/helmfile/apps/cryptpad/helmfile-child.yaml.gotmpl index e4497fe6..7e1c8ead 100644 --- a/helmfile/apps/cryptpad/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/cryptpad/helmfile-child.yaml.gotmpl @@ -18,6 +18,7 @@ releases: version: "{{ .Values.charts.cryptpad.version }}" values: - "values.yaml.gotmpl" + - {{ .Values.customization.release.cryptpad | default "additionalValues: false" }} installed: {{ .Values.cryptpad.enabled }} commonLabels: diff --git a/helmfile/apps/element/helmfile-child.yaml.gotmpl b/helmfile/apps/element/helmfile-child.yaml.gotmpl index 6a9159c5..a6f81f17 100644 --- a/helmfile/apps/element/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/element/helmfile-child.yaml.gotmpl @@ -39,6 +39,7 @@ releases: version: "{{ .Values.charts.element.version }}" values: - "values-element.yaml.gotmpl" + - {{ .Values.customization.release.opendeskElement | default "additionalValues: false" }} installed: {{ .Values.element.enabled }} timeout: 900 @@ -47,6 +48,7 @@ releases: version: "{{ .Values.charts.elementWellKnown.version }}" values: - "values-well-known.yaml.gotmpl" + - {{ .Values.customization.release.opendeskWellKnown | default "additionalValues: false" }} installed: {{ .Values.element.enabled }} timeout: 900 @@ -55,6 +57,7 @@ releases: version: "{{ .Values.charts.synapseWeb.version }}" values: - "values-synapse-web.yaml.gotmpl" + - {{ .Values.customization.release.opendeskSynapseWeb | default "additionalValues: false" }} installed: {{ .Values.element.enabled }} timeout: 900 @@ -63,6 +66,7 @@ releases: version: "{{ .Values.charts.synapse.version }}" values: - "values-synapse.yaml.gotmpl" + - {{ .Values.customization.release.opendeskSynapse | default "additionalValues: false" }} installed: {{ .Values.element.enabled }} timeout: 900 diff --git a/helmfile/apps/intercom-service/helmfile-child.yaml.gotmpl b/helmfile/apps/intercom-service/helmfile-child.yaml.gotmpl index bcc2bd6d..70ce779c 100644 --- a/helmfile/apps/intercom-service/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/intercom-service/helmfile-child.yaml.gotmpl @@ -18,6 +18,7 @@ releases: version: "{{ .Values.charts.intercomService.version }}" values: - "values.yaml.gotmpl" + - {{ .Values.customization.release.intercomService | default "additionalValues: false" }} installed: {{ .Values.intercom.enabled }} commonLabels: diff --git a/helmfile/apps/jitsi/helmfile-child.yaml.gotmpl b/helmfile/apps/jitsi/helmfile-child.yaml.gotmpl index 18148c4b..87cf3032 100644 --- a/helmfile/apps/jitsi/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/jitsi/helmfile-child.yaml.gotmpl @@ -18,6 +18,7 @@ releases: version: "{{ .Values.charts.jitsi.version }}" values: - "values-jitsi.yaml.gotmpl" + - {{ .Values.customization.release.jitsi | default "additionalValues: false" }} installed: {{ .Values.jitsi.enabled }} timeout: 900 diff --git a/helmfile/apps/migrations-post/helmfile-child.yaml.gotmpl b/helmfile/apps/migrations-post/helmfile-child.yaml.gotmpl index 82422606..0e6299aa 100644 --- a/helmfile/apps/migrations-post/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/migrations-post/helmfile-child.yaml.gotmpl @@ -21,6 +21,7 @@ releases: values: - "values.yaml.gotmpl" - "../../shared/migrations.yaml.gotmpl" + - {{ .Values.customization.release.migrationsPost | default "additionalValues: false" }} installed: {{ .Values.migrations.enabled }} timeout: 900 diff --git a/helmfile/apps/migrations-pre/helmfile-child.yaml.gotmpl b/helmfile/apps/migrations-pre/helmfile-child.yaml.gotmpl index d83ae3d7..c67908a2 100644 --- a/helmfile/apps/migrations-pre/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/migrations-pre/helmfile-child.yaml.gotmpl @@ -21,6 +21,7 @@ releases: values: - "values.yaml.gotmpl" - "../../shared/migrations.yaml.gotmpl" + - {{ .Values.customization.release.migrationsPre | default "additionalValues: false" }} installed: {{ .Values.migrations.enabled }} timeout: 900 diff --git a/helmfile/apps/nextcloud/helmfile-child.yaml.gotmpl b/helmfile/apps/nextcloud/helmfile-child.yaml.gotmpl index e032381e..d80721b5 100644 --- a/helmfile/apps/nextcloud/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/nextcloud/helmfile-child.yaml.gotmpl @@ -25,6 +25,7 @@ releases: version: "{{ .Values.charts.nextcloudManagement.version }}" values: - "values-nextcloud-mgmt.yaml.gotmpl" + - {{ .Values.customization.release.opendeskNextcloudManagement | default "additionalValues: false" }} waitForJobs: true wait: true installed: {{ .Values.nextcloud.enabled }} @@ -34,6 +35,7 @@ releases: version: "{{ .Values.charts.nextcloud.version }}" values: - "values-nextcloud.yaml.gotmpl" + - {{ .Values.customization.release.opendeskNextcloud | default "additionalValues: false" }} needs: - "opendesk-nextcloud-management" installed: {{ .Values.nextcloud.enabled }} diff --git a/helmfile/apps/nubus/helmfile-child.yaml.gotmpl b/helmfile/apps/nubus/helmfile-child.yaml.gotmpl index 615ab61e..58d7ff1e 100644 --- a/helmfile/apps/nubus/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/nubus/helmfile-child.yaml.gotmpl @@ -29,6 +29,7 @@ releases: - "values-nubus.yaml.gotmpl" - "values-opendesk-customization.yaml.gotmpl" - "values-opendesk-images.yaml.gotmpl" + - {{ .Values.customization.release.ums | default "additionalValues: false" }} installed: {{ .Values.nubus.enabled }} timeout: 900 # OpenDesk Keycloak Bootstrap Chart @@ -37,6 +38,7 @@ releases: version: "{{ .Values.charts.opendeskKeycloakBootstrap.version }}" values: - "values-opendesk-keycloak-bootstrap.yaml.gotmpl" + - {{ .Values.customization.release.opendeskKeycloakBootstrap | default "additionalValues: false" }} needs: - "ums" installed: {{ .Values.nubus.enabled }} diff --git a/helmfile/apps/open-xchange/helmfile-child.yaml.gotmpl b/helmfile/apps/open-xchange/helmfile-child.yaml.gotmpl index 048d061e..86a7f203 100644 --- a/helmfile/apps/open-xchange/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/open-xchange/helmfile-child.yaml.gotmpl @@ -38,6 +38,7 @@ releases: version: "{{ .Values.charts.dovecot.version }}" values: - "values-dovecot.yaml.gotmpl" + - {{ .Values.customization.release.dovecot | default "additionalValues: false" }} installed: {{ .Values.dovecot.enabled }} timeout: 900 @@ -47,6 +48,7 @@ releases: values: - "values-openxchange.yaml.gotmpl" - "values-openxchange-enterprise-contact-picker.yaml.gotmpl" + - {{ .Values.customization.release.openXchange | default "additionalValues: false" }} installed: {{ .Values.oxAppsuite.enabled }} timeout: 900 @@ -55,6 +57,7 @@ releases: version: "{{ .Values.charts.openXchangeAppSuiteBootstrap.version }}" values: - "values-openxchange-bootstrap.yaml.gotmpl" + - {{ .Values.customization.release.opendeskOpenXchangeBootstrap | default "additionalValues: false" }} installed: {{ .Values.oxAppsuite.enabled }} timeout: 900 diff --git a/helmfile/apps/openproject-bootstrap/helmfile-child.yaml.gotmpl b/helmfile/apps/openproject-bootstrap/helmfile-child.yaml.gotmpl index dfcf2f21..fbf7b677 100644 --- a/helmfile/apps/openproject-bootstrap/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/openproject-bootstrap/helmfile-child.yaml.gotmpl @@ -20,6 +20,7 @@ releases: waitForJobs: true values: - "values.yaml.gotmpl" + - {{ .Values.customization.release.opendeskOpenprojectBootstrap | default "additionalValues: false" }} installed: {{ .Values.openproject.enabled }} timeout: 900 diff --git a/helmfile/apps/openproject/helmfile-child.yaml.gotmpl b/helmfile/apps/openproject/helmfile-child.yaml.gotmpl index 27313f19..5be55bf9 100644 --- a/helmfile/apps/openproject/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/openproject/helmfile-child.yaml.gotmpl @@ -20,6 +20,7 @@ releases: waitForJobs: true values: - "values.yaml.gotmpl" + - {{ .Values.customization.release.openproject | default "additionalValues: false" }} installed: {{ .Values.openproject.enabled }} timeout: 1500 diff --git a/helmfile/apps/provisioning/helmfile-child.yaml.gotmpl b/helmfile/apps/provisioning/helmfile-child.yaml.gotmpl index 227bd877..c40eda90 100644 --- a/helmfile/apps/provisioning/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/provisioning/helmfile-child.yaml.gotmpl @@ -15,6 +15,7 @@ releases: version: "{{ .Values.charts.oxConnector.version }}" values: - "values-oxconnector.yaml.gotmpl" + - {{ .Values.customization.release.oxConnector | default "additionalValues: false" }} installed: {{ .Values.oxConnector.enabled }} commonLabels: diff --git a/helmfile/apps/services/helmfile-child.yaml.gotmpl b/helmfile/apps/services/helmfile-child.yaml.gotmpl index 218cd5ad..502204b3 100644 --- a/helmfile/apps/services/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/services/helmfile-child.yaml.gotmpl @@ -119,6 +119,7 @@ releases: version: "{{ .Values.charts.otterize.version }}" values: - "values-otterize.yaml.gotmpl" + - {{ .Values.customization.release.opendeskOtterize | default "additionalValues: false" }} installed: {{ .Values.security.otterizeIntents.enabled }} timeout: 900 @@ -127,6 +128,7 @@ releases: version: "{{ .Values.charts.home.version }}" values: - "values-home.yaml.gotmpl" + - {{ .Values.customization.release.opendeskHome | default "additionalValues: false" }} installed: {{ .Values.home.enabled }} - name: "opendesk-certificates" @@ -134,6 +136,7 @@ releases: version: "{{ .Values.charts.certificates.version }}" values: - "values-certificates.yaml.gotmpl" + - {{ .Values.customization.release.opendeskCertificates | default "additionalValues: false" }} installed: {{ .Values.certificates.enabled }} timeout: 900 @@ -142,6 +145,7 @@ releases: version: "{{ .Values.charts.redis.version }}" values: - "values-redis.yaml.gotmpl" + - {{ .Values.customization.release.redis | default "additionalValues: false" }} installed: {{ .Values.redis.enabled }} timeout: 900 @@ -150,6 +154,7 @@ releases: version: "{{ .Values.charts.memcached.version }}" values: - "values-memcached.yaml.gotmpl" + - {{ .Values.customization.release.memcached | default "additionalValues: false" }} installed: {{ .Values.memcached.enabled }} timeout: 900 @@ -158,6 +163,7 @@ releases: version: "{{ .Values.charts.postgresql.version }}" values: - "values-postgresql.yaml.gotmpl" + - {{ .Values.customization.release.postgresql | default "additionalValues: false" }} installed: {{ .Values.postgresql.enabled }} timeout: 900 @@ -166,6 +172,7 @@ releases: version: "{{ .Values.charts.mariadb.version }}" values: - "values-mariadb.yaml.gotmpl" + - {{ .Values.customization.release.mariadb | default "additionalValues: false" }} installed: {{ .Values.mariadb.enabled }} timeout: 900 @@ -174,6 +181,7 @@ releases: version: "{{ .Values.charts.postfix.version }}" values: - "values-postfix.yaml.gotmpl" + - {{ .Values.customization.release.postfix | default "additionalValues: false" }} installed: {{ .Values.postfix.enabled }} timeout: 900 @@ -182,6 +190,7 @@ releases: version: "{{ .Values.charts.dkimpy.version }}" values: - "values-dkimpy.yaml.gotmpl" + - {{ .Values.customization.release.opendeskDkimpyMilter | default "additionalValues: false" }} installed: {{ .Values.dkimpy.enabled }} timeout: 900 @@ -190,6 +199,7 @@ releases: version: "{{ .Values.charts.clamav.version }}" values: - "values-clamav-distributed.yaml.gotmpl" + - {{ .Values.customization.release.clamav | default "additionalValues: false" }} installed: {{ .Values.clamavDistributed.enabled }} timeout: 900 @@ -198,6 +208,7 @@ releases: version: "{{ .Values.charts.clamavSimple.version }}" values: - "values-clamav-simple.yaml.gotmpl" + - {{ .Values.customization.release.clamavSimple | default "additionalValues: false" }} installed: {{ .Values.clamavSimple.enabled }} timeout: 900 @@ -206,6 +217,7 @@ releases: version: "{{ .Values.charts.minio.version }}" values: - "values-minio.yaml.gotmpl" + - {{ .Values.customization.release.minio | default "additionalValues: false" }} installed: {{ .Values.minio.enabled }} timeout: 900 diff --git a/helmfile/apps/xwiki/helmfile-child.yaml.gotmpl b/helmfile/apps/xwiki/helmfile-child.yaml.gotmpl index 64ad8174..347601bf 100644 --- a/helmfile/apps/xwiki/helmfile-child.yaml.gotmpl +++ b/helmfile/apps/xwiki/helmfile-child.yaml.gotmpl @@ -19,6 +19,7 @@ releases: wait: true values: - "values.yaml.gotmpl" + - {{ .Values.customization.release.xwiki | default "additionalValues: false" }} installed: {{ .Values.xwiki.enabled }} timeout: 900 diff --git a/helmfile/environments/default/customization.yaml b/helmfile/environments/default/customization.yaml new file mode 100644 index 00000000..ccbd1066 --- /dev/null +++ b/helmfile/environments/default/customization.yaml @@ -0,0 +1,59 @@ +# SPDX-FileCopyrightText: 2024 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH +# SPDX-License-Identifier: Apache-2.0 +--- +# This variable allows customization of helmfile releases by loading custom values file. +# Example: +# customization: +# release: +# collaboraOnline: /path/to/additional/file.yaml +customization: + release: + # collabora + collaboraOnline: ~ + # cryptpad + cryptpad: ~ + # element + opendeskElement: ~ + opendeskWellKnown: ~ + opendeskSynapseWeb: ~ + opendeskSynapse: ~ + # intercom-service + intercomService: ~ + # jitsi + jitsi: ~ + # migrations-post + migrationsPost: ~ + # migrations-pre + migrationsPre: ~ + # nextcloud + opendeskNextcloudManagement: ~ + opendeskNextcloud: ~ + # nubus + ums: ~ + opendeskKeycloakBootstrap: ~ + # open-xchange + dovecot: ~ + openXchange: ~ + opendeskOpenXchangeBootstrap: ~ + # openproject + openproject: ~ + # openproject-bootstrap + opendeskOpenprojectBootstrap: ~ + # provisioning + oxConnector: ~ + # services + opendeskOtterize: ~ + opendeskHome: ~ + opendeskCertificates: ~ + redis: ~ + memcached: ~ + postgresql: ~ + mariadb: ~ + postfix: ~ + opendeskDkimpyMilter: ~ + clamav: ~ + clamavSimple: ~ + minio: ~ + # xwiki + xwiki: ~ +...