From 66dfd03d505ac83b4207affefc1dd504c7494356 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 11 Jul 2023 14:47:11 +0200 Subject: [PATCH] OZG-3961 - move service account config to alfa --- run_helm_test.sh | 7 ++ .../serviceaccount_keycloak_read.yaml | 62 ++++++++++++ .../serviceaccount_keycloak_write.yaml | 66 +++++++++++++ src/test/helm/keycloak-crd-test.yaml | 18 +--- .../serviceaccount_keycloak_read_test.yaml | 94 ++++++++++++++++++ .../serviceaccount_keycloak_write_test.yaml | 98 +++++++++++++++++++ 6 files changed, 329 insertions(+), 16 deletions(-) create mode 100755 run_helm_test.sh create mode 100644 src/main/helm/templates/serviceaccount_keycloak_read.yaml create mode 100644 src/main/helm/templates/serviceaccount_keycloak_write.yaml create mode 100644 src/test/helm/serviceaccount_keycloak_read_test.yaml create mode 100644 src/test/helm/serviceaccount_keycloak_write_test.yaml diff --git a/run_helm_test.sh b/run_helm_test.sh new file mode 100755 index 0000000000..7324e7d118 --- /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 0000000000..df3877f625 --- /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 0000000000..ac87469925 --- /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 5d1edcbbb7..21631aaa7e 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 0000000000..4131df4d16 --- /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 0000000000..523aa961d1 --- /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 -- GitLab