diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index d59b652ef42c838efa9acc93c794dc93d864c8c9..124b152430602370722dca7e465b8c2d10b80c34 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -42,4 +42,20 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- define "app.ozgcloudEnvironment" -}} {{- required "Environment muss angegeben sein" (.Values.ozgcloud).environment -}} +{{- end -}} + +{{- define "app.ssoRealm" -}} +{{ printf "%s-%s-%s" (include "app.ozgcloudBundesland" .) ( include "app.ozgcloudBezeichner" . ) ( include "app.ozgcloudEnvironment" . ) | trunc 63 | trimSuffix "-" }} +{{- end -}} + +{{- define "app.ssoClientName" -}} +{{- if (.Values.sso).client_name -}} +{{ printf "%s" (.Values.sso).client_name }} +{{- else -}} +{{ printf "administration" }} +{{- end -}} +{{- end -}} + +{{- define "app.ssoServerUrl" -}} +{{- required "sso.serverUrl muss angegeben sein" (.Values.sso).serverUrl -}} {{- end -}} \ No newline at end of file diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index c5c0cf7411b990d848ab845e1f6a7bff0122472c..ef81ba37c796b946769797b7ec3f2a98b20548a4 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -62,6 +62,12 @@ spec: - name: spring_profiles_active value: {{ include "app.envSpringProfiles" . }} {{- if not (.Values.database).useExternal }} + - name: keycloak_realm + value: {{ include "app.ssoRealm" . }} + - name: keycloak_resource + value: {{ include "app.ssoClientName" . }} + - name: keycloak_auth-server-url + value: {{ include "app.ssoServerUrl" . }} - name: spring_data_mongodb_uri valueFrom: secretKeyRef: @@ -71,7 +77,7 @@ spec: - name: spring_data_mongodb_database value: {{ .Values.database.databaseName | default "administration-database" }} {{- end }} - + envFrom: {{- if (.Values.database).useExternal }} - secretRef: diff --git a/src/test/helm/deployment_defaults_sso_test.yaml b/src/test/helm/deployment_defaults_sso_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ef6cfdcd5f33e5138de30571e741403a57e21801 --- /dev/null +++ b/src/test/helm/deployment_defaults_sso_test.yaml @@ -0,0 +1,87 @@ +# +# 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: test deployment +release: + name: administration + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + baseUrl: test.company.local + ozgcloud: + environment: test + bundesland: sh + bezeichner: helm + sso: + serverUrl: https://sso.company.local +tests: + - it: check default values + asserts: + - isKind: + of: Deployment + - contains: + path: spec.template.spec.containers[0].env + content: + name: keycloak_realm + value: sh-helm-test + - contains: + path: spec.template.spec.containers[0].env + content: + name: keycloak_resource + value: administration + - contains: + path: spec.template.spec.containers[0].env + content: + name: keycloak_auth-server-url + value: https://sso.company.local + + - it: check realm with long namespace + set: + ozgcloud: + bezeichner: eins-zwei-drei + environment: dev + bundesland: sh + asserts: + - isKind: + of: Deployment + - contains: + path: spec.template.spec.containers[0].env + content: + name: keycloak_realm + value: sh-eins-zwei-drei-dev + + - it: check different client name + set: + sso: + client_name: different-client + serverUrl: https://sso.company.local + asserts: + - isKind: + of: Deployment + - contains: + path: spec.template.spec.containers[0].env + content: + name: keycloak_resource + value: different-client