diff --git a/src/main/helm/templates/oidc_client_secret.yaml b/src/main/helm/templates/oidc_client_secret.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4da4c63ef9dbfb9ed7ab3ef4d61a6856d2ac3d03 --- /dev/null +++ b/src/main/helm/templates/oidc_client_secret.yaml @@ -0,0 +1,37 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +apiVersion: v1 +kind: Secret +metadata: + name: oidc-client-credentials + namespace: {{ include "app.namespace" . }} + annotations: + "helm.by/resource-policy": "keep" +type: Opaque +stringData: + secret: {{ .Values.oidc.client.secret }} + id: {{ .Values.oidc.client.id }} + auth_server: {{ .Values.oidc.client.auth_server }} + kop_url: {{ .Values.oidc.client.kop_url }} \ No newline at end of file diff --git a/src/main/helm/templates/zufi_daten_sync_job.yaml b/src/main/helm/templates/zufi_daten_sync_job.yaml index c11fe6c8f2b286779f5d3e41ead2801ad2b614fa..d3ccb917d3f8a7b4b31667e0b1864a6ca43019f9 100644 --- a/src/main/helm/templates/zufi_daten_sync_job.yaml +++ b/src/main/helm/templates/zufi_daten_sync_job.yaml @@ -44,13 +44,29 @@ spec: image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}" env: - name: QUARKUS_OIDC_CLIENT_AUTH_SERVER_URL - value: {{ .Values.quarkus.oidcclient.authserverurl }} + valueFrom: + secretKeyRef: + name: oidc-client-credentials + key: auth_server + optional: false - name: QUARKUS_REST_CLIENT_KOP_URL - value: {{ .Values.quarkus.restclient.kop.url }} + valueFrom: + secretKeyRef: + name: oidc-client-credentials + key: kop_url + optional: false - name: QUARKUS_OIDC_CLIENT_CLIENT_ID - value: {{ .Values.kop.zufi.client.id }} + valueFrom: + secretKeyRef: + name: oidc-client-credentials + key: id + optional: false - name: QUARKUS_OIDC_CLIENT_CREDENTIALS_SECRET - value: {{ .Values.kop.zufi.client.secret }} + valueFrom: + secretKeyRef: + name: oidc-client-credentials + key: secret + optional: false - name: QUARKUS_ELASTICSEARCH_HOSTS valueFrom: secretKeyRef: diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml index eb8968e1a308f59c39b1c7141f1b3c392450decb..b535f30398d57848dbd52b144d7b94b4b5212b78 100644 --- a/src/main/helm/values.yaml +++ b/src/main/helm/values.yaml @@ -30,17 +30,14 @@ image: name: zufi-manager tag: latest # [default: latest] -quarkus: - oidcclient: - authserverurl: https://private.demo.pvog.cloud-bdc.dataport.de/auth/realms/pvog - restclient: - kop: - url: https://public.demo.pvog.cloud-bdc.dataport.de/bereitstelldienst/api +oidc: + client: + auth_server: https://private.demo.pvog.cloud-bdc.dataport.de/auth/realms/pvog + kop_url: https://public.demo.pvog.cloud-bdc.dataport.de/bereitstelldienst/api + id: kop kop: zufi: - client: - id: kop land: code: 01% index: diff --git a/src/test/helm/oidc_client_secret_test.yaml b/src/test/helm/oidc_client_secret_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..91d644eaa1edeb824bcbb9d41532679e9304fca7 --- /dev/null +++ b/src/test/helm/oidc_client_secret_test.yaml @@ -0,0 +1,75 @@ +# +# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den +# Ministerpräsidenten des Landes Schleswig-Holstein +# Staatskanzlei +# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung +# +# Lizenziert unter der EUPL, Version 1.2 oder - sobald +# diese von der Europäischen Kommission genehmigt wurden - +# Folgeversionen der EUPL ("Lizenz"); +# Sie dürfen dieses Werk ausschließlich gemäß +# dieser Lizenz nutzen. +# Eine Kopie der Lizenz finden Sie hier: +# +# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 +# +# Sofern nicht durch anwendbare Rechtsvorschriften +# gefordert oder in schriftlicher Form vereinbart, wird +# die unter der Lizenz verbreitete Software "so wie sie +# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - +# ausdrücklich oder stillschweigend - verbreitet. +# Die sprachspezifischen Genehmigungen und Beschränkungen +# unter der Lizenz sind dem Lizenztext zu entnehmen. +# + +suite: oidc client secret +release: + name: zufi-manager + namespace: zufi-manager +templates: + - templates/oidc_client_secret.yaml +tests: + - it: validate metadata + set: + oidc: + client: + secret: geheim + id: kop + auth_server: https://auth_server.local + kop_url: https://kop_url.local + asserts: + - isKind: + of: Secret + - equal: + path: metadata.name + value: oidc-client-credentials + - equal: + path: metadata.namespace + value: zufi-manager + - equal: + path: metadata.annotations + value: + "helm.by/resource-policy": "keep" + - isAPIVersion: + of: v1 + - it: test oidc client values + set: + oidc: + client: + secret: geheim + id: kop + auth_server: https://auth_server.local + kop_url: https://kop_url.local + asserts: + - equal: + path: stringData.secret + value: geheim + - equal: + path: stringData.id + value: kop + - equal: + path: stringData.auth_server + value: https://auth_server.local + - equal: + path: stringData.kop_url + value: https://kop_url.local \ No newline at end of file diff --git a/src/test/helm/zufi_daten_sync_job_test.yaml b/src/test/helm/zufi_daten_sync_job_test.yaml index 455611c5f7c0aa69e4dbe8b3bd052b589c1b8f0e..e4c7ce7324c1e11ac6a8a1f8e06cd4ff8dd8d301 100644 --- a/src/test/helm/zufi_daten_sync_job_test.yaml +++ b/src/test/helm/zufi_daten_sync_job_test.yaml @@ -51,33 +51,44 @@ tests: path: spec.jobTemplate.spec.template.spec.containers[0].env content: name: QUARKUS_OIDC_CLIENT_AUTH_SERVER_URL - value: "https://private.demo.pvog.cloud-bdc.dataport.de/auth/realms/pvog" + valueFrom: + secretKeyRef: + name: oidc-client-credentials + key: auth_server + optional: false - it: validate QUARKUS_REST_CLIENT_KOP_URL configuration value asserts: - contains: path: spec.jobTemplate.spec.template.spec.containers[0].env content: name: QUARKUS_REST_CLIENT_KOP_URL - value: https://public.demo.pvog.cloud-bdc.dataport.de/bereitstelldienst/api + valueFrom: + secretKeyRef: + name: oidc-client-credentials + key: kop_url + optional: false - it: validate QUARKUS_OIDC_CLIENT_CLIENT_ID configuration value asserts: - contains: path: spec.jobTemplate.spec.template.spec.containers[0].env content: name: QUARKUS_OIDC_CLIENT_CLIENT_ID - value: kop + valueFrom: + secretKeyRef: + name: oidc-client-credentials + key: id + optional: false - it: validate QUARKUS_OIDC_CLIENT_CREDENTIALS_SECRET configuration value - set: - kop: - zufi: - client: - secret: ganzGeheim asserts: - contains: path: spec.jobTemplate.spec.template.spec.containers[0].env content: name: QUARKUS_OIDC_CLIENT_CREDENTIALS_SECRET - value: ganzGeheim + valueFrom: + secretKeyRef: + name: oidc-client-credentials + key: secret + optional: false - it: validate QUARKUS_ELASTICSEARCH_HOSTS configuration value asserts: - contains: