diff --git a/run_helm_test.sh b/run_helm_test.sh new file mode 100755 index 0000000000000000000000000000000000000000..7324e7d118cdd0dd4d8815201c07089ea5122d12 --- /dev/null +++ b/run_helm_test.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +helm template ./src/main/helm/ -f src/test/unit-values.yaml +helm lint -f src/test/unit-values.yaml ./src/main/helm/ +cd src/main/helm && helm unittest --helm3 -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' . \ No newline at end of file diff --git a/src/main/helm/templates/serviceaccount_keycloak_read.yaml b/src/main/helm/templates/serviceaccount_keycloak_read.yaml new file mode 100644 index 0000000000000000000000000000000000000000..df3877f625252df98b352fdb01d425b2a5423a6d --- /dev/null +++ b/src/main/helm/templates/serviceaccount_keycloak_read.yaml @@ -0,0 +1,62 @@ +# +# 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. +# + +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloak-viewer-role-binding +subjects: + - kind: ServiceAccount + name: ozg-operator-serviceaccount + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + name: ozg-operator-keycloak-viewer-role + apiGroup: rbac.authorization.k8s.io +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloak-viewer-role +rules: + - apiGroups: + - "*" + resources: + - ozgkeycloakusers + - ozgkeycloakusers/status + - ozgkeycloakusers/finalizers + - ozgkeycloakgroups + - ozgkeycloakgroups/status + - ozgkeycloakgroups/finalizers + - ozgkeycloakrealms + - ozgkeycloakrealms/status + - ozgkeycloakrealms/finalizers + - ozgkeycloakclients + - ozgkeycloakclients/status + - ozgkeycloakclients/finalizers + verbs: + - get + - list + - watch diff --git a/src/main/helm/templates/serviceaccount_keycloak_write.yaml b/src/main/helm/templates/serviceaccount_keycloak_write.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ac874699250b7323ccca1c83bdadc56e799abc2a --- /dev/null +++ b/src/main/helm/templates/serviceaccount_keycloak_write.yaml @@ -0,0 +1,66 @@ +# +# 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. +# + +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloak-write-role-binding +subjects: + - kind: ServiceAccount + name: ozg-operator-serviceaccount + namespace: {{ .Release.Namespace }} +roleRef: + kind: Role + name: ozg-operator-keycloak-write-role + apiGroup: rbac.authorization.k8s.io +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloak-write-role +rules: + - apiGroups: + - "*" + resources: + - ozgkeycloakusers + - ozgkeycloakusers/status + - ozgkeycloakusers/finalizers + - ozgkeycloakgroups + - ozgkeycloakgroups/status + - ozgkeycloakgroups/finalizers + - ozgkeycloakrealms + - ozgkeycloakrealms/status + - ozgkeycloakrealms/finalizers + - ozgkeycloakclients + - ozgkeycloakclients/status + - ozgkeycloakclients/finalizers + verbs: + - get + - list + - create + - delete + - patch + - update + - watch diff --git a/src/test/helm/keycloak-crd-test.yaml b/src/test/helm/keycloak-crd-test.yaml index 5d1edcbbb7fb4d929af2cde44eb038e1e9609298..21631aaa7e7b6265edc1395b7d8130ac09eaa77f 100644 --- a/src/test/helm/keycloak-crd-test.yaml +++ b/src/test/helm/keycloak-crd-test.yaml @@ -48,33 +48,19 @@ tests: - equal: path: spec.keep_after_delete value: false - - equal: - path: spec.kop_einheitlicher_ansprechpartner - value: false - it: should have Keycloak Values set: baseUrl: "test.by.ozg-cloud.de" sso: keep_after_delete: true - role_einheitlicher_ansprechpartner: true asserts: - equal: path: spec.keep_after_delete value: true - - equal: - path: spec.kop_einheitlicher_ansprechpartner - value: true - - equal: - path: spec.kop_bezeichner - value: helm - equal: path: spec.kop_displayname value: Realm für Helm (test) - - equal: - path: spec.kop_env_base_url - value: test.by.ozg-cloud.de - - equal: - path: spec.kop_enviroment - value: test + + diff --git a/src/test/helm/serviceaccount_keycloak_read_test.yaml b/src/test/helm/serviceaccount_keycloak_read_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4131df4d1679f2078aa18e1376aebf819ccf9200 --- /dev/null +++ b/src/test/helm/serviceaccount_keycloak_read_test.yaml @@ -0,0 +1,94 @@ +# +# 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: serviceaccount keycloak read +release: + name: ozg-test + namespace: by-helm-test +templates: + - templates/serviceaccount_keycloak_read.yaml +tests: + - it: role binding + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + documentIndex: 0 + - equal: + path: metadata + value: + name: ozg-operator-keycloak-viewer-role-binding + documentIndex: 0 + - equal: + path: subjects + value: + - kind: ServiceAccount + name: ozg-operator-serviceaccount + namespace: by-helm-test + documentIndex: 0 + - equal: + path: roleRef + value: + kind: Role + name: ozg-operator-keycloak-viewer-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + - it: role + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + documentIndex: 1 + - equal: + path: metadata + value: + name: ozg-operator-keycloak-viewer-role + documentIndex: 1 + - equal: + path: rules + value: + - apiGroups: + - "*" + resources: + - ozgkeycloakusers + - ozgkeycloakusers/status + - ozgkeycloakusers/finalizers + - ozgkeycloakgroups + - ozgkeycloakgroups/status + - ozgkeycloakgroups/finalizers + - ozgkeycloakrealms + - ozgkeycloakrealms/status + - ozgkeycloakrealms/finalizers + - ozgkeycloakclients + - ozgkeycloakclients/status + - ozgkeycloakclients/finalizers + verbs: + - get + - list + - watch + documentIndex: 1 \ No newline at end of file diff --git a/src/test/helm/serviceaccount_keycloak_write_test.yaml b/src/test/helm/serviceaccount_keycloak_write_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..523aa961d155766cf080867580474fb24f1c203d --- /dev/null +++ b/src/test/helm/serviceaccount_keycloak_write_test.yaml @@ -0,0 +1,98 @@ +# +# 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: serviceaccount keycloak write +release: + name: ozg-test + namespace: by-helm-test +templates: + - templates/serviceaccount_keycloak_write.yaml +tests: + - it: role binding + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + documentIndex: 0 + - equal: + path: metadata + value: + name: ozg-operator-keycloak-write-role-binding + documentIndex: 0 + - equal: + path: subjects + value: + - kind: ServiceAccount + name: ozg-operator-serviceaccount + namespace: by-helm-test + documentIndex: 0 + - equal: + path: roleRef + value: + kind: Role + name: ozg-operator-keycloak-write-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + - it: role + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + documentIndex: 1 + - equal: + path: metadata + value: + name: ozg-operator-keycloak-write-role + documentIndex: 1 + - equal: + path: rules + value: + - apiGroups: + - "*" + resources: + - ozgkeycloakusers + - ozgkeycloakusers/status + - ozgkeycloakusers/finalizers + - ozgkeycloakgroups + - ozgkeycloakgroups/status + - ozgkeycloakgroups/finalizers + - ozgkeycloakrealms + - ozgkeycloakrealms/status + - ozgkeycloakrealms/finalizers + - ozgkeycloakclients + - ozgkeycloakclients/status + - ozgkeycloakclients/finalizers + verbs: + - get + - list + - create + - delete + - patch + - update + - watch + documentIndex: 1 \ No newline at end of file