diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index a5932236210a96e8b671969620f939ad14619ca6..f70d294c33302ec1c5c8d88bea5c30d647c83cdc 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -97,6 +97,40 @@ spec: value: {{ .Values.osipostfach.httpproxy.auth.password }} {{- end }} {{- end }} + - name: ozgcloud_osiv2_enabled + value: "{{ (.Values.ozgcloud.osiv2).enabled }}" + {{- if (.Values.ozgcloud.osiv2).enabled}} + - name: ozgcloud_osiv2_auth_client-id + valueFrom: + secretKeyRef: + name: osiv2-auth + key: client-id + - name: ozgcloud_osiv2_auth_client-secret + valueFrom: + secretKeyRef: + name: osiv2-auth + key: client-secret + - name: ozgcloud_osiv2_auth_scope + value: {{ .Values.ozgcloud.osiv2.auth.scope }} + - name: ozgcloud_osiv2_auth_token-uri + value: {{ .Values.ozgcloud.osiv2.auth.tokenuri }} + - name: ozgcloud_osiv2_auth_resource + value: {{ .Values.ozgcloud.osiv2.auth.resource }} + - name: ozgcloud_osiv2_api_url + value: {{ .Values.ozgcloud.osiv2.api.url }} + - name: ozgcloud_osiv2_api_tenant + value: {{ .Values.ozgcloud.osiv2.api.tenant}} + - name: ozgcloud_osiv2_api_name-identifier + value: {{ .Values.ozgcloud.osiv2.api.nameidentifier}} + {{- if (.Values.ozgcloud.osiv2.httpproxy).enabled}} + - name: ozgcloud_osiv2_http-proxy_enabled + value: "{{ .Values.ozgcloud.osiv2.httpproxy.enabled }}" + - name: ozgcloud_osiv2_http-proxy_host + value: {{ .Values.ozgcloud.osiv2.httpproxy.host }} + - name: ozgcloud_osiv2_http-proxy_port + value: "{{ .Values.ozgcloud.osiv2.httpproxy.port }}" + {{- end }} + {{- end }} {{- if (.Values.rabbitmq).enabled }} - name: spring_rabbitmq_username valueFrom: diff --git a/src/main/helm/templates/osiv2_auth_secret.yaml b/src/main/helm/templates/osiv2_auth_secret.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f4c42dae128e36a008aa98f7a564e1926cc376a0 --- /dev/null +++ b/src/main/helm/templates/osiv2_auth_secret.yaml @@ -0,0 +1,35 @@ +# +# Copyright (C) 2025 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. +# + +{{- if (.Values.ozgcloud.osiv2).enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: osiv2-auth + namespace: {{ include "app.namespace" . }} +type: Opaque +stringData: + client-id: {{ .Values.ozgcloud.osiv2.auth.clientid }} + client-secret: {{ .Values.ozgcloud.osiv2.auth.clientsecret }} +{{- end }} \ No newline at end of file diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml index a9130a41e6164e82f5f94df7a3a64e2ffb5dc65d..51f295e9052538c0707833fb211411f03a2477bd 100644 --- a/src/main/helm/values.yaml +++ b/src/main/helm/values.yaml @@ -71,3 +71,5 @@ ozgcloud: namespace: aggregationManager: enabled: false + osiv2: + enabled: false diff --git a/src/test/helm/deployment_63_chars_test.yaml b/src/test/helm/deployment_63_chars_test.yaml index 4ce95b672dfe95bd63951cdc2cca52f2e7d17c45..d3e3eec77ae96fd1e51ea6651edb83e73c7d19fc 100644 --- a/src/test/helm/deployment_63_chars_test.yaml +++ b/src/test/helm/deployment_63_chars_test.yaml @@ -40,21 +40,21 @@ set: imagePullSecret: test-image-pull-secret tests: + - it: should not fail on .Release.Namespace length less than 63 characters + asserts: + - notFailedTemplate: { } - it: should fail on .Release.Namespace length longer than 63 characters release: namespace: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 asserts: - failedTemplate: errorMessage: .Release.Namespace test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen) - - it: should not fail on .Release.Namespace length less than 63 characters + - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters asserts: - - notFailedTemplate: {} + - notFailedTemplate: { } - it: should fail on .Chart.Name-.Chart.Version length longer than 63 characters chart: version: 1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 asserts: - failedTemplate: errorMessage: .Chart.Name-.Chart.Version vorgang-manager-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen) - - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters - asserts: - - notFailedTemplate: {} \ No newline at end of file diff --git a/src/test/helm/deployment_osiv2_test.yaml b/src/test/helm/deployment_osiv2_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b5e43e66f1edac294897809a752c61419adfdea7 --- /dev/null +++ b/src/test/helm/deployment_osiv2_test.yaml @@ -0,0 +1,189 @@ +# +# Copyright (C) 2025 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: deployment osiv2 +release: + name: vorgang-manager + namespace: sh-helm-test +templates: + - templates/deployment.yaml +set: + baseUrl: test.sh.ozg-cloud.de + imagePullSecret: test-image-pull-secret + ozgcloud: + environment: dev + bezeichner: helm + osiv2: + auth: + clientid: "client-id" + clientsecret: "client-secret" + scope: "scope" + tokenuri: "token-uri" + resource: "resource" + api: + url: "https://api.url" + tenant: "tenant" + nameidentifier: "name-identifier" + httpproxy: + enabled: false +tests: + - it: should set osiv2 values + set: + ozgcloud: + osiv2: + enabled: true + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_enabled + value: "true" + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_client-id + valueFrom: + secretKeyRef: + key: client-id + name: osiv2-auth + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_client-secret + valueFrom: + secretKeyRef: + key: client-secret + name: osiv2-auth + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_scope + value: "scope" + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_token-uri + value: "token-uri" + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_resource + value: "resource" + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_api_url + value: "https://api.url" + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_api_tenant + value: "tenant" + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_api_name-identifier + value: "name-identifier" + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_http-proxy_enabled + any: true + - it: should set osiv2 proxy values + set: + ozgcloud: + osiv2: + enabled: true + httpproxy: + enabled: true + host: "http://proxy.host" + port: 8080 + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_http-proxy_enabled + value: "true" + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_http-proxy_host + value: "http://proxy.host" + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_http-proxy_port + value: "8080" + - it: should not by default set osiv2 values + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_enabled + value: "false" + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_client_id + any: true + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_client_secret + any: true + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_scope + any: true + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_token-uri + any: true + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_auth_resource + any: true + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_api_url + any: true + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_api_tenant + any: true + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_api_name-identifier + any: true + - notContains: + path: spec.template.spec.containers[0].env + content: + name: ozgcloud_osiv2_http_proxy_enabled + any: true diff --git a/src/test/helm/elasticsearch_cr_test.yaml b/src/test/helm/elasticsearch_cr_test.yaml index 068c1fd7c0170efcac8d73fdba88fc0440a1e7f9..2a065d7c07156b32d324db7918ff8044b17077a3 100644 --- a/src/test/helm/elasticsearch_cr_test.yaml +++ b/src/test/helm/elasticsearch_cr_test.yaml @@ -47,12 +47,11 @@ tests: asserts: - hasDocuments: count: 1 - documentIndex: 1 + documentIndex: 0 - it: should NOT create cr if not enabled asserts: - hasDocuments: count: 0 - documentIndex: 0 - it: should NOT create cr if disableOzgCloudOperator true set: elasticsearch: @@ -61,5 +60,4 @@ tests: asserts: - hasDocuments: count: 0 - documentIndex: 0 \ No newline at end of file diff --git a/src/test/helm/osiv2_auth_secret_test.yaml b/src/test/helm/osiv2_auth_secret_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..81244c9293c7d5bf2223bd9a034736e6d40c5805 --- /dev/null +++ b/src/test/helm/osiv2_auth_secret_test.yaml @@ -0,0 +1,72 @@ +# +# Copyright (C) 2025 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 osiv2 auth secret +release: + name: vorgang-manager + namespace: sh-helm-test +templates: + - templates/osiv2_auth_secret.yaml +set: + ozgcloud: + osiv2: + auth: + clientid: "client-id" + clientsecret: "client-secret" +tests: + - it: test metadata + set: + ozgcloud.osiv2.enabled: true + asserts: + - isKind: + of: Secret + - isAPIVersion: + of: v1 + - equal: + path: metadata.name + value: osiv2-auth + - equal: + path: metadata.namespace + value: sh-helm-test + - it: test secret type + set: + ozgcloud.osiv2.enabled: true + asserts: + - equal: + path: type + value: Opaque + - it: should have stringData + set: + ozgcloud.osiv2.enabled: true + asserts: + - equal: + path: stringData.client-id + value: "client-id" + - equal: + path: stringData.client-secret + value: "client-secret" + - it: should not create osiv2 auth secret by default + asserts: + - hasDocuments: + count: 0