From 2e61a699065ea6c7abdd3ea9ab0446a46fe507a5 Mon Sep 17 00:00:00 2001 From: Axel Lender Date: Mon, 2 Jun 2025 10:18:33 +0200 Subject: [PATCH] feat(helmfile): Add external secrets template support for Nextcloud Signed-off-by: Axel Lender --- .../values-nextcloud-mgmt.yaml.gotmpl | 41 +++++++++++++- .../nextcloud/values-nextcloud.yaml.gotmpl | 17 +++++- .../default/external_secrets.yaml.gotmpl | 56 +++++++++++++++++++ 3 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 helmfile/environments/default/external_secrets.yaml.gotmpl diff --git a/helmfile/apps/nextcloud/values-nextcloud-mgmt.yaml.gotmpl b/helmfile/apps/nextcloud/values-nextcloud-mgmt.yaml.gotmpl index d908cb1d..3d2bdddf 100644 --- a/helmfile/apps/nextcloud/values-nextcloud-mgmt.yaml.gotmpl +++ b/helmfile/apps/nextcloud/values-nextcloud-mgmt.yaml.gotmpl @@ -1,5 +1,5 @@ {{/* -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 */}} @@ -28,8 +28,14 @@ configuration: enabled: true username: value: "nextcloud" + secret: + name: {{ .Values.externalSecrets.nextcloud.adminUsername.name | quote }} + key: {{ .Values.externalSecrets.nextcloud.adminUsername.key | quote }} password: value: {{ .Values.secrets.nextcloud.adminPassword | quote }} + secret: + name: {{ .Values.externalSecrets.nextcloud.adminPassword.name | quote }} + key: {{ .Values.externalSecrets.nextcloud.adminPassword.key | quote }} antivirus: {{- if .Values.antivirus.icap.host }} @@ -49,8 +55,14 @@ configuration: enabled: true username: value: {{ .Values.cache.nextcloud.username }} + secret: + name: {{ .Values.externalSecrets.cache.nextcloudUsername.name | quote }} + key: {{ .Values.externalSecrets.cache.nextcloudUsername.key | quote }} password: value: {{ .Values.cache.nextcloud.password | default .Values.secrets.redis.password | quote }} + secret: + name: {{ .Values.externalSecrets.cache.nextcloudPassword.name | quote }} + key: {{ .Values.externalSecrets.cache.nextcloudPassword.key | quote }} host: {{ .Values.cache.nextcloud.host | quote }} port: {{ .Values.cache.nextcloud.port | quote }} tls: {{ .Values.cache.nextcloud.tls }} @@ -94,8 +106,14 @@ configuration: password: {{- if or (eq .Values.databases.nextcloud.type "mariadb") (eq .Values.databases.nextcloud.type "mysql") }} value: {{ .Values.databases.nextcloud.password | default .Values.secrets.mariadb.nextcloudUser | quote }} + secret: + name: {{ .Values.externalSecrets.mariadb.nextcloudUser.name | quote }} + key: {{ .Values.externalSecrets.mariadb.nextcloudUser.key | quote }} {{- else if or (eq .Values.databases.nextcloud.type "postgresql") (eq .Values.databases.nextcloud.type "psql") }} value: {{ .Values.databases.nextcloud.password | default .Values.secrets.postgresql.nextcloudUser | quote }} + secret: + name: {{ .Values.externalSecrets.postgresql.nextcloudUser.name | quote }} + key: {{ .Values.externalSecrets.postgresql.nextcloudUser.key | quote }} {{- else }} value: {{ .Values.databases.nextcloud.password | quote }} {{- end }} @@ -104,14 +122,23 @@ configuration: host: {{ .Values.ldap.host | quote }} password: value: {{ .Values.secrets.nubus.ldapSearch.nextcloud | quote }} + secret: + name: {{ .Values.externalSecrets.nubus.ldapSearch.nextcloud.name | quote }} + key: {{ .Values.externalSecrets.nubus.ldapSearch.nextcloud.key | quote }} adminGroupName: "managed-by-attribute-FileshareAdmin" objectstore: auth: accessKey: value: {{ .Values.objectstores.nextcloud.username | quote }} + secret: + name: {{ .Values.externalSecrets.objectstores.nextcloudAccessKey.name | quote }} + key: {{ .Values.externalSecrets.objectstores.nextcloudAccessKey.key | quote }} secretKey: value: {{ .Values.objectstores.nextcloud.secretKey | default .Values.secrets.minio.nextcloudUser | quote }} + secret: + name: {{ .Values.externalSecrets.objectstores.nextcloudSecretKey.name | quote }} + key: {{ .Values.externalSecrets.objectstores.nextcloudSecretKey.key | quote }} bucket: {{ .Values.objectstores.nextcloud.bucket | quote }} host: {{ .Values.objectstores.nextcloud.endpoint | quote }} region: {{ .Values.objectstores.nextcloud.region | quote }} @@ -125,6 +152,9 @@ configuration: value: "opendesk-nextcloud" password: value: {{ .Values.secrets.keycloak.clientSecret.ncoidc | quote }} + secret: + name: {{ .Values.externalSecrets.keycloak.clientSecretNcoidc.name | quote }} + key: {{ .Values.externalSecrets.keycloak.clientSecretNcoidc.key | quote }} opendeskIntegration: centralNavigation: @@ -132,6 +162,9 @@ configuration: value: "opendesk_username" password: value: {{ .Values.secrets.centralnavigation.apiKey | quote }} + secret: + name: {{ .Values.externalSecrets.centralnavigation.apiKey.name | quote }} + key: {{ .Values.externalSecrets.centralnavigation.apiKey.key | quote }} oxAppSuite: enabled: {{ .Values.apps.oxAppSuite.enabled }} @@ -156,6 +189,9 @@ configuration: value: {{ printf "%s@%s" "opendesk-system" ( .Values.global.mailDomain | default .Values.global.domain ) }} password: value: {{ .Values.secrets.postfix.opendeskSystemPassword | quote }} + secret: + name: {{ .Values.externalSecrets.postfix.opendeskSystemPassword.name | quote }} + key: {{ .Values.externalSecrets.postfix.opendeskSystemPassword.key | quote }} host: {{ printf "%s.%s.svc.%s" "postfix" (.Values.apps.postfix.namespace | default .Release.Namespace) .Values.cluster.networking.domain | quote }} port: 587 fromAddress: {{ .Values.smtp.localpartNoReply | quote }} @@ -172,6 +208,9 @@ configuration: serverinfo: token: value: {{ .Values.secrets.nextcloud.metricsToken | quote }} + secret: + name: {{ .Values.externalSecrets.nextcloud.metricsToken.name | quote }} + key: {{ .Values.externalSecrets.nextcloud.metricsToken.key | quote }} containerSecurityContext: allowPrivilegeEscalation: false diff --git a/helmfile/apps/nextcloud/values-nextcloud.yaml.gotmpl b/helmfile/apps/nextcloud/values-nextcloud.yaml.gotmpl index 2bc22efc..7841c68c 100644 --- a/helmfile/apps/nextcloud/values-nextcloud.yaml.gotmpl +++ b/helmfile/apps/nextcloud/values-nextcloud.yaml.gotmpl @@ -1,5 +1,5 @@ {{/* -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 */}} @@ -21,6 +21,9 @@ exporter: server: "http://opendesk-nextcloud-aio" token: value: {{ .Values.secrets.nextcloud.metricsToken | quote }} + secret: + name: {{ .Values.externalSecrets.nextcloud.metricsToken.name | quote }} + key: {{ .Values.externalSecrets.nextcloud.metricsToken.key | quote }} containerSecurityContext: allowPrivilegeEscalation: false capabilities: @@ -73,8 +76,14 @@ aio: enabled: true username: value: {{ .Values.cache.nextcloud.username }} + secret: + name: {{ .Values.externalSecrets.cache.nextcloudUsername.name | quote }} + key: {{ .Values.externalSecrets.cache.nextcloudUsername.key | quote }} password: value: {{ .Values.cache.nextcloud.password | default .Values.secrets.redis.password | quote }} + secret: + name: {{ .Values.externalSecrets.cache.nextcloudPassword.name | quote }} + key: {{ .Values.externalSecrets.cache.nextcloudPassword.key | quote }} host: {{ .Values.cache.nextcloud.host | quote }} port: {{ .Values.cache.nextcloud.port | quote }} tls: {{ .Values.cache.nextcloud.tls }} @@ -95,8 +104,14 @@ aio: password: {{- if or (eq .Values.databases.nextcloud.type "mariadb") (eq .Values.databases.nextcloud.type "mysql") }} value: {{ .Values.databases.nextcloud.password | default .Values.secrets.mariadb.nextcloudUser | quote }} + secret: + name: {{ .Values.externalSecrets.mariadb.nextcloudUser.name | quote }} + key: {{ .Values.externalSecrets.mariadb.nextcloudUser.key | quote }} {{- else if or (eq .Values.databases.nextcloud.type "postgresql") (eq .Values.databases.nextcloud.type "psql") }} value: {{ .Values.databases.nextcloud.password | default .Values.secrets.postgresql.nextcloudUser | quote }} + secret: + name: {{ .Values.externalSecrets.postgresql.nextcloudUser.name | quote }} + key: {{ .Values.externalSecrets.postgresql.nextcloudUser.key | quote }} {{- else }} value: {{ .Values.databases.nextcloud.password | quote }} {{- end }} diff --git a/helmfile/environments/default/external_secrets.yaml.gotmpl b/helmfile/environments/default/external_secrets.yaml.gotmpl new file mode 100644 index 00000000..f26ef4de --- /dev/null +++ b/helmfile/environments/default/external_secrets.yaml.gotmpl @@ -0,0 +1,56 @@ +{{/* +SPDX-FileCopyrightText: 2025 Zentrum für Digitale Souveränität der Öffentlichen Verwaltung (ZenDiS) GmbH +SPDX-License-Identifier: Apache-2.0 +*/}} +--- +externalSecrets: + cache: + nextcloudUsername: + name: ~ + key: ~ + nextcloudPassword: + name: ~ + key: ~ + centralnavigation: + apiKey: + name: ~ + key: ~ + keycloak: + clientSecretNcoidc: + name: ~ + key: ~ + mariadb: + nextcloudUser: + name: ~ + key: ~ + nextcloud: + adminPassword: + name: ~ + key: ~ + adminUsername: + name: ~ + key: ~ + metricsToken: + name: ~ + key: ~ + nubus: + ldapSearch: + nextcloud: + name: ~ + key: ~ + objectstores: + nextcloudAccessKey: + name: ~ + key: ~ + nextcloudSecretKey: + name: ~ + key: ~ + postfix: + opendeskSystemPassword: + name: ~ + key: ~ + postgresql: + nextcloudUser: + name: ~ + key: ~ +... \ No newline at end of file