diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl index 3728db3cd0e932571246a392a988e0552e39ad78..5c59e5b729fcba81b59f1d71cd54f713ad59abf2 100644 --- a/src/main/helm/templates/_helpers.tpl +++ b/src/main/helm/templates/_helpers.tpl @@ -114,4 +114,4 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }} {{- define "app.goofyAddress" -}} {{ printf "https://%s.%s" (include "app.kopBezeichner" .) .Values.baseUrl }} -{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/src/main/helm/templates/cert_issuer.yaml b/src/main/helm/templates/cert_issuer.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1e87578410a3e22f53f67ff24e35427587b9d3d5 --- /dev/null +++ b/src/main/helm/templates/cert_issuer.yaml @@ -0,0 +1,31 @@ +# +# 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: cert-manager.io/v1 +kind: Issuer +metadata: + name: user-manager-issuer + namespace: {{ include "app.namespace" . }} +spec: + selfSigned: {} \ No newline at end of file diff --git a/src/main/helm/templates/certificate.yaml b/src/main/helm/templates/certificate.yaml new file mode 100644 index 0000000000000000000000000000000000000000..02e60de385e513b9fd1450e9a48876b3cf5b8d56 --- /dev/null +++ b/src/main/helm/templates/certificate.yaml @@ -0,0 +1,44 @@ +# +# 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: cert-manager.io/v1 +kind: Certificate +metadata: + name: user-manager-tls-certificate + namespace: {{ include "app.namespace" . }} +spec: + secretName: user-manager-tls-cert + issuerRef: + name: user-manager-issuer + kind: Issuer + duration: 8760h0m0s + renewBefore: 720h0m0s + commonName: {{ include "app.name" . }} + dnsNames: + - "*.{{ include "app.name" . }}.{{ include "app.namespace" . }}.svc.cluster.local" + - "{{ include "app.name" . }}.{{ include "app.namespace" . }}.svc.cluster.local" + - "{{ include "app.name" . }}.{{ include "app.namespace" . }}.svc.cluster" + - "{{ include "app.name" . }}.{{ include "app.namespace" . }}.svc" + - "{{ include "app.name" . }}.{{ include "app.namespace" . }}" + - "{{ include "app.name" . }}" \ No newline at end of file diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml index 35a6236637177a27ef16f37ea75b80d1f16cf83c..fb02067f56ed6b80522fbfc35415c26969faaae2 100644 --- a/src/main/helm/templates/deployment.yaml +++ b/src/main/helm/templates/deployment.yaml @@ -128,6 +128,19 @@ spec: terminationMessagePath: /dev/termination-log terminationMessagePolicy: File tty: true + volumeMounts: + - name: user-manager-tls-certificate + mountPath: "/user-manager-tls-certificate/tls.crt" + subPath: tls.crt + readOnly: true + - name: user-manager-tls-certificate + mountPath: "/user-manager-tls-certificate/tls.key" + subPath: tls.key + readOnly: true + volumes: + - name: user-manager-tls-certificate + secret: + secretName: user-manager-tls-cert dnsConfig: {} dnsPolicy: ClusterFirst imagePullSecrets: diff --git a/src/test/helm/cert_issuer_test.yaml b/src/test/helm/cert_issuer_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b2e1448f6d1be3d1fda4bbedab0e4c6a29a11515 --- /dev/null +++ b/src/test/helm/cert_issuer_test.yaml @@ -0,0 +1,50 @@ +# +# 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: cert-issuer +release: + name: user-manager + namespace: sh-helm-test +templates: + - templates/cert_issuer.yaml +tests: + - it: should contains header data + asserts: + - isAPIVersion: + of: cert-manager.io/v1 + - isKind: + of: Issuer + - it: should have metadata + asserts: + - equal: + path: metadata.name + value: user-manager-issuer + - equal: + path: metadata.namespace + value: sh-helm-test + - it: should be selfSigned + asserts: + - equal: + path: spec.selfSigned + value: {} \ No newline at end of file diff --git a/src/test/helm/certificate_test.yaml b/src/test/helm/certificate_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ac111fb2284e8d718f0c08598fa3170472089444 --- /dev/null +++ b/src/test/helm/certificate_test.yaml @@ -0,0 +1,93 @@ +# +# 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: certificate +release: + name: user-manager + namespace: sh-helm-test +templates: + - templates/certificate.yaml +tests: + - it: should contains header data + asserts: + - isAPIVersion: + of: cert-manager.io/v1 + - isKind: + of: Certificate + - it: should have metadata + asserts: + - equal: + path: metadata.name + value: user-manager-tls-certificate + - equal: + path: metadata.namespace + value: sh-helm-test + - it: should have secretName + asserts: + - equal: + path: spec.secretName + value: user-manager-tls-cert + - it: should have issuerRef + asserts: + - equal: + path: spec.issuerRef.name + value: user-manager-issuer + - equal: + path: spec.issuerRef.kind + value: Issuer + - it: should have duration + asserts: + - equal: + path: spec.duration + value: 8760h0m0s + - it: should have renewBefore + asserts: + - equal: + path: spec.renewBefore + value: 720h0m0s + - it: should have commonName + asserts: + - equal: + path: spec.commonName + value: "user-manager" + - it: should have dnsNames + asserts: + - equal: + path: spec.dnsNames[0] + value: "*.user-manager.sh-helm-test.svc.cluster.local" + - equal: + path: spec.dnsNames[1] + value: "user-manager.sh-helm-test.svc.cluster.local" + - equal: + path: spec.dnsNames[2] + value: "user-manager.sh-helm-test.svc.cluster" + - equal: + path: spec.dnsNames[3] + value: "user-manager.sh-helm-test.svc" + - equal: + path: spec.dnsNames[4] + value: "user-manager.sh-helm-test" + - equal: + path: spec.dnsNames[5] + value: "user-manager" \ No newline at end of file diff --git a/src/test/helm/deployment-test.yaml b/src/test/helm/deployment-test.yaml index 85d43856525e4d506d85be9ef214e86721df73bd..63803158b25a70874c05dc979023cafbbfacc7ab 100644 --- a/src/test/helm/deployment-test.yaml +++ b/src/test/helm/deployment-test.yaml @@ -22,7 +22,7 @@ # unter der Lizenz sind dem Lizenztext zu entnehmen. # -suite: test deployment +suite: deployment release: name: user-manager templates: diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml index 082d6b64ca87090744f75c7e39af85fb50c2af20..9404db81c9dc25dc0c0c59a0b967683ee9cd2c4c 100644 --- a/src/test/helm/deployment_env_test.yaml +++ b/src/test/helm/deployment_env_test.yaml @@ -45,4 +45,4 @@ tests: path: spec.template.spec.containers[0].env content: name: my_test_environment_name - value: "A test value" + value: "A test value" \ No newline at end of file diff --git a/src/test/helm/deplyoment_cert_bindings_test.yaml b/src/test/helm/deplyoment_cert_bindings_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..abcccc1b2754214eb93eaecbb09ee093880ff84c --- /dev/null +++ b/src/test/helm/deplyoment_cert_bindings_test.yaml @@ -0,0 +1,60 @@ +# +# 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: deployment cert bindings +release: + name: user-manager + namespace: user-manager +templates: + - templates/deployment.yaml +tests: + - it: should mount volumes for user-manager root ca + set: + kop.environment: dev + asserts: + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: user-manager-tls-certificate + mountPath: "/user-manager-tls-certificate/tls.crt" + subPath: tls.crt + readOnly: true + - contains: + path: spec.template.spec.containers[0].volumeMounts + content: + name: user-manager-tls-certificate + mountPath: "/user-manager-tls-certificate/tls.key" + subPath: tls.key + readOnly: true + + - it: should have volumes for user-manager root certificate + set: + namespace: sh-helm-test + asserts: + - contains: + path: spec.template.spec.volumes + content: + name: user-manager-tls-certificate + secret: + secretName: user-manager-tls-cert \ No newline at end of file diff --git a/user-manager-server/src/main/resources/application-dev.yaml b/user-manager-server/src/main/resources/application-dev.yaml deleted file mode 100644 index 877e9bfec51b8386c7b87d7353125f99b03a2b4a..0000000000000000000000000000000000000000 --- a/user-manager-server/src/main/resources/application-dev.yaml +++ /dev/null @@ -1,31 +0,0 @@ -quarkus: - mongodb: - database: usermanager - oidc: - auth-server-url: https://sso.dev.by.kop-cloud.de/realms/sh-kiel-dev - http: - auth: - permission: - bearer: - paths: /api/userProfiles/*,/api/user/* - policy: permit - deny-api: - paths: /api/* - policy: deny - permit-migration: - enabled: false - paths: /api/migration/user/* - policy: permit - methods: GET -kop: - keycloak: - sync: - cron: "0 */10 * * * ?" - api: - user: goofyApiUser - password: S9UEMuLG9y9ev99 - realm: dev - organisations-einheit-id-key: organisationsEinheitId - ldap-id-key: LDAP_ID -keycloak: - url: https://sso.dev.by.kop-cloud.de \ No newline at end of file diff --git a/user-manager-server/src/main/resources/application.yaml b/user-manager-server/src/main/resources/application.yaml index 06c95fb32ee2a7942ecc3dff7e8e406a3f699bb9..8c24a1cd6b30f687ddad684fdc08cfc6980dfc2a 100644 --- a/user-manager-server/src/main/resources/application.yaml +++ b/user-manager-server/src/main/resources/application.yaml @@ -1,3 +1,10 @@ +"%prod": + quarkus: + grpc: + server: + ssl: + certificate: /user-manager-tls-certificate/tls.crt + key: /user-manager-tls-certificate/tls.key quarkus: application: name: kopusermanager