diff --git a/elster-transfer/lint-values.yaml b/elster-transfer/lint-values.yaml index af06854a7559b44c9c85df9fed88c52e6d61a974..e63076f517e9be92322b43ef28475d5de57a223f 100644 --- a/elster-transfer/lint-values.yaml +++ b/elster-transfer/lint-values.yaml @@ -1,4 +1,7 @@ imagePullSecret: ozgcloud-image-pull-secret networkPolicy: - dnsServerNamespace: test-dns-namespace \ No newline at end of file + dnsServerNamespace: test-dns-namespace + +elsterTransferOperator: + namespace: elt-operator \ No newline at end of file diff --git a/elster-transfer/templates/_helpers.tpl b/elster-transfer/templates/_helpers.tpl index 3a13fe3d710ea586853571c198c99d941661b23e..3f8f6505b8100ede9fd6e1941cfc8486a72293f1 100644 --- a/elster-transfer/templates/_helpers.tpl +++ b/elster-transfer/templates/_helpers.tpl @@ -27,6 +27,14 @@ app.kubernetes.io/version: {{ .Chart.Version }} helm.sh/chart: {{ include "app.chart" . }} {{- end -}} + +{{- define "app.namespace" -}} +{{- if gt (len (.Release.Namespace)) 63 -}} +{{- fail (printf ".Release.Namespace %s ist zu lang (max. 63 Zeichen)" .Release.Namespace) -}} +{{- end -}} +{{ printf "%s" .Release.Namespace }} +{{- end -}} + {{- define "app.matchLabels" }} app.kubernetes.io/name: {{ .Release.Name }} app.kubernetes.io/namespace: {{ .Release.Namespace }} @@ -52,4 +60,9 @@ app.kubernetes.io/namespace: {{ .Release.Namespace }} {{- $customList = append $customList (dict "name" $key "value" $value) }} {{- end -}} {{- $customList | toYaml -}} +{{- end -}} + + +{{- define "app.elsterTransferOperatorNamespace" -}} +{{- required "elsterTransferOperator.namespace must be set" (.Values.elsterTransferOperator).namespace -}} {{- end -}} \ No newline at end of file diff --git a/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_create_role.yaml b/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_create_role.yaml new file mode 100644 index 0000000000000000000000000000000000000000..a80c872d8259c4475bce0d0930437761b30c952f --- /dev/null +++ b/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_create_role.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. +# +{{- if (.Values.userAuthentication).enabled }} +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-configmap-create-role-binding + namespace: {{ include "app.namespace" . }} +subjects: + - kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: {{ include "app.elsterTransferOperatorNamespace" . }} +roleRef: + kind: Role + name: ozgcloud-elster-transfer-operator-configmap-create-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-configmap-create-role + namespace: {{ include "app.namespace" . }} +rules: + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["create"] +{{- end -}} \ No newline at end of file diff --git a/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_read_role.yaml b/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_read_role.yaml new file mode 100644 index 0000000000000000000000000000000000000000..51833bde3e91b5ce6ef4b113d2028de255a96b67 --- /dev/null +++ b/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_read_role.yaml @@ -0,0 +1,51 @@ +# +# 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. +# +{{- if (.Values.userAuthentication).enabled }} +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-configmap-read-role-binding + namespace: {{ include "app.namespace" . }} +subjects: + - kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: {{ include "app.elsterTransferOperatorNamespace" . }} +roleRef: + kind: Role + name: ozgcloud-elster-transfer-operator-configmap-read-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-configmap-read-role + namespace: {{ include "app.namespace" . }} +rules: + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get", "list"] + resourceNames: ["etr-user-config"] +{{- end -}} \ No newline at end of file diff --git a/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_update_role.yaml b/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_update_role.yaml new file mode 100644 index 0000000000000000000000000000000000000000..70b5d99bab832a90858bfa40e6e92eecd1fdbe40 --- /dev/null +++ b/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_update_role.yaml @@ -0,0 +1,51 @@ +# +# 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. +# +{{- if (.Values.userAuthentication).enabled }} +--- +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-configmap-update-role-binding + namespace: {{ include "app.namespace" . }} +subjects: + - kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: {{ include "app.elsterTransferOperatorNamespace" . }} +roleRef: + kind: Role + name: ozgcloud-elster-transfer-operator-configmap-update-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-configmap-update-role + namespace: {{ include "app.namespace" . }} +rules: + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["update", "patch"] + resourceNames: ["etr-user-config"] +{{- end -}} \ No newline at end of file diff --git a/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_read_role.yaml b/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_read_role.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b457a2c137e6e908ae7e5d2e161039ec36a55c9d --- /dev/null +++ b/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_read_role.yaml @@ -0,0 +1,51 @@ +# +# 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. +# +{{- if (.Values.userAuthentication).enabled }} +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-deployment-read-role-binding + namespace: {{ include "app.namespace" . }} +subjects: + - kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: {{ include "app.elsterTransferOperatorNamespace" . }} +roleRef: + kind: Role + name: ozgcloud-elster-transfer-operator-deployment-read-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-deployment-read-role + namespace: {{ include "app.namespace" . }} +rules: + - apiGroups: ["apps"] + resourceNames: ["elster-transfer"] + resources: ["deployments"] + verbs: ["get", "list"] + +{{- end -}} \ No newline at end of file diff --git a/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_write_role.yaml b/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_write_role.yaml new file mode 100644 index 0000000000000000000000000000000000000000..211e5ca93285225218f323e7cb200e5f2687db07 --- /dev/null +++ b/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_write_role.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. +# +{{- if (.Values.userAuthentication).enabled }} +kind: RoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-deployment-write-role-binding + namespace: {{ include "app.namespace" . }} +subjects: + - kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: {{ include "app.elsterTransferOperatorNamespace" . }} +roleRef: + kind: Role + name: ozgcloud-elster-transfer-operator-deployment-write-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-deployment-write-role + namespace: {{ include "app.namespace" . }} +rules: + - apiGroups: ["apps"] + resourceNames: ["elster-transfer"] + resources: ["deployments"] + verbs: ["update", "patch"] +{{- end -}} \ No newline at end of file diff --git a/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_create_role_test.yaml b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_create_role_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..c62c3e897ef43c05fe7328cb1b70e7715009cf59 --- /dev/null +++ b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_create_role_test.yaml @@ -0,0 +1,121 @@ +# +# 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: ElsterTransfer read rbac test +release: + name: elstertransfer + namespace: test-namespace +set: +templates: + - templates/ozgcloud_elstertransfer_operator_configmap_create_role.yaml +tests: + - it: test RoleBinding metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-configmap-create-role-binding + documentIndex: 0 + - it: test RoleBinding subject + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: subjects + content: + kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: etr-operator + documentIndex: 0 + - it: test RoleBinding roleRef + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - equal: + path: roleRef + value: + kind: Role + name: ozgcloud-elster-transfer-operator-configmap-create-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + + - it: test Role metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-configmap-create-role + documentIndex: 1 + - it: test RoleBinding rules + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: rules + content: + apiGroups: + - "" + resources: + - configmaps + verbs: + - create + documentIndex: 1 + - it: RBAC not created by default + asserts: + - hasDocuments: + count: 0 + - it: test elsterTransferOperator.namespace must be set message + set: + userAuthentication: + enabled: true + asserts: + - failedTemplate: + errorMessage: elsterTransferOperator.namespace must be set \ No newline at end of file diff --git a/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_read_role_test.yaml b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_read_role_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..7b01f30cd6383d2c685c6282214a3144879fd6a5 --- /dev/null +++ b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_read_role_test.yaml @@ -0,0 +1,124 @@ +# +# 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: ElsterTransfer read rbac test +release: + name: elstertransfer + namespace: test-namespace + +templates: + - templates/ozgcloud_elstertransfer_operator_configmap_read_role.yaml +tests: + - it: test RoleBinding metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-configmap-read-role-binding + documentIndex: 0 + - it: test RoleBinding subject + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: subjects + content: + kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: etr-operator + documentIndex: 0 + - it: test RoleBinding roleRef + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - equal: + path: roleRef + value: + kind: Role + name: ozgcloud-elster-transfer-operator-configmap-read-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + + - it: test Role metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-configmap-read-role + documentIndex: 1 + - it: test RoleBinding rules + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: rules + content: + apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + resourceNames: + - "etr-user-config" + documentIndex: 1 + - it: RBAC not created by default + asserts: + - hasDocuments: + count: 0 + - it: test elsterTransferOperator.namespace must be set message + set: + userAuthentication: + enabled: true + asserts: + - failedTemplate: + errorMessage: elsterTransferOperator.namespace must be set \ No newline at end of file diff --git a/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_update_role_test.yaml b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_update_role_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..d307c0b894846af4b0a377d438a1936f8047b461 --- /dev/null +++ b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_update_role_test.yaml @@ -0,0 +1,124 @@ +# +# 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: ElsterTransfer read rbac test +release: + name: elstertransfer + namespace: test-namespace +set: +templates: + - templates/ozgcloud_elstertransfer_operator_configmap_update_role.yaml +tests: + - it: test RoleBinding metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-configmap-update-role-binding + documentIndex: 0 + - it: test RoleBinding subject + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: subjects + content: + kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: etr-operator + documentIndex: 0 + - it: test RoleBinding roleRef + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - equal: + path: roleRef + value: + kind: Role + name: ozgcloud-elster-transfer-operator-configmap-update-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + + - it: test Role metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-configmap-update-role + documentIndex: 1 + - it: test RoleBinding rules + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: rules + content: + apiGroups: + - "" + resources: + - configmaps + verbs: + - update + - patch + resourceNames: + - etr-user-config + documentIndex: 1 + - it: RBAC not created by default + asserts: + - hasDocuments: + count: 0 + - it: test elsterTransferOperator.namespace must be set message + set: + userAuthentication: + enabled: true + asserts: + - failedTemplate: + errorMessage: elsterTransferOperator.namespace must be set \ No newline at end of file diff --git a/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_read_role_test.yaml b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_read_role_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..53172b9568e4d4eadf947ec0fb48faaee00e5284 --- /dev/null +++ b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_read_role_test.yaml @@ -0,0 +1,125 @@ +# +# 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: ElsterTransfer write rbac test +release: + name: elstertransfer + namespace: test-namespace + +templates: + - templates/ozgcloud_elstertransfer_operator_deployment_read_role.yaml +tests: + - it: test RoleBinding metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-deployment-read-role-binding + documentIndex: 0 + - it: test RoleBinding subject + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: subjects + content: + kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: etr-operator + documentIndex: 0 + - it: test RoleBinding roleRef + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - equal: + path: roleRef + value: + kind: Role + name: ozgcloud-elster-transfer-operator-deployment-read-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + + - it: test Role metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-deployment-read-role + documentIndex: 1 + - it: test RoleBinding rules + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: rules + content: + apiGroups: + - apps + resourceNames: + - elster-transfer + resources: + - deployments + verbs: + - get + - list + documentIndex: 1 + - it: RBAC not created by default + asserts: + - hasDocuments: + count: 0 + + - it: test elsterTransferOperator.namespace must be set message + set: + userAuthentication: + enabled: true + asserts: + - failedTemplate: + errorMessage: elsterTransferOperator.namespace must be set \ No newline at end of file diff --git a/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_write_role_test.yaml b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_write_role_test.yaml new file mode 100644 index 0000000000000000000000000000000000000000..340d39bd7ecf42e4c64fe73674d5f53cb1bebcb2 --- /dev/null +++ b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_write_role_test.yaml @@ -0,0 +1,126 @@ +# +# 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: ElsterTransfer write rbac test +release: + name: elstertransfer + namespace: test-namespace + +templates: + - templates/ozgcloud_elstertransfer_operator_deployment_write_role.yaml +tests: + - it: test RoleBinding metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-deployment-write-role-binding + documentIndex: 0 + - it: test RoleBinding subject + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: subjects + content: + kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: etr-operator + documentIndex: 0 + - it: test RoleBinding roleRef + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - equal: + path: roleRef + value: + kind: Role + name: ozgcloud-elster-transfer-operator-deployment-write-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + + - it: test Role metadata + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-deployment-write-role + documentIndex: 1 + - it: test RoleBinding rules + set: + userAuthentication: + enabled: true + elsterTransferOperator: + namespace: etr-operator + asserts: + - contains: + path: rules + content: + apiGroups: + - apps + resourceNames: + - elster-transfer + resources: + - deployments + verbs: + - update + - patch + documentIndex: 1 + - it: RBAC not created by default + asserts: + - hasDocuments: + count: 0 + + + - it: test elsterTransferOperator.namespace must be set message + set: + userAuthentication: + enabled: true + asserts: + - failedTemplate: + errorMessage: elsterTransferOperator.namespace must be set \ No newline at end of file