From c0a70eb2950453bb38b29e5e37ef62d4e8e531b1 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Tue, 23 Jul 2024 10:24:51 +0200 Subject: [PATCH] OZG-6177 add configmap read/write and deployment patch role --- elster-transfer/lint-values.yaml | 5 +- ...er_operator_configmap_read_write_role.yaml | 48 ++++++++++ ...ansfer_operator_deployment_patch_role.yaml | 49 ++++++++++ ...erator_configmap_read_write_role_test.yaml | 91 +++++++++++++++++++ ...r_operator_deployment_patch_role_test.yaml | 89 ++++++++++++++++++ 5 files changed, 281 insertions(+), 1 deletion(-) create mode 100644 elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_read_write_role.yaml create mode 100644 elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_patch_role.yaml create mode 100644 elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_read_write_role_test.yaml create mode 100644 elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_patch_role_test.yaml diff --git a/elster-transfer/lint-values.yaml b/elster-transfer/lint-values.yaml index af06854..e63076f 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/ozgcloud_elstertransfer_operator_configmap_read_write_role.yaml b/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_read_write_role.yaml new file mode 100644 index 0000000..3f035cd --- /dev/null +++ b/elster-transfer/templates/ozgcloud_elstertransfer_operator_configmap_read_write_role.yaml @@ -0,0 +1,48 @@ +# +# 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: ozgcloud-elster-transfer-operator-configmap-read-write-role-binding + namespace: {{ include "app.namespace" . }} +subjects: + - kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: {{ required "elsterTransferOperator.namespace must be set" (.Values.elsterTransferOperator).namespace }} +roleRef: + kind: Role + name: ozgcloud-elster-transfer-operator-configmap-read-write-role + apiGroup: rbac.authorization.k8s.io +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-configmap-read-write-role + namespace: {{ include "app.namespace" . }} +rules: + - apiGroups: [""] + resources: ["configmaps"] + verbs: ["get", "list", "watch", "update", "patch"] \ No newline at end of file diff --git a/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_patch_role.yaml b/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_patch_role.yaml new file mode 100644 index 0000000..fd81405 --- /dev/null +++ b/elster-transfer/templates/ozgcloud_elstertransfer_operator_deployment_patch_role.yaml @@ -0,0 +1,49 @@ +# +# 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: ozgcloud-elster-transfer-operator-deployment-patch-role-binding + namespace: {{ include "app.namespace" . }} +subjects: + - kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: {{ required "elsterTransferOperator.namespace must be set" (.Values.elsterTransferOperator).namespace }} +roleRef: + kind: Role + name: ozgcloud-elster-transfer-operator-deployment-patch-role + apiGroup: rbac.authorization.k8s.io + +--- +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozgcloud-elster-transfer-operator-deployment-patch-role + namespace: {{ include "app.namespace" . }} +rules: + - apiGroups: ["apps"] + resourceNames: ["elster-transfer"] + resources: ["deployments"] + verbs: ["patch"] diff --git a/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_read_write_role_test.yaml b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_read_write_role_test.yaml new file mode 100644 index 0000000..945c04c --- /dev/null +++ b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_configmap_read_write_role_test.yaml @@ -0,0 +1,91 @@ +# +# 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: ozgcloud-elstertransfer-operator + namespace: test-namespace +set: + elsterTransferOperator: + namespace: elt-operator +templates: + - templates/ozgcloud_elstertransfer_operator_configmap_read_write_role.yaml +tests: + - it: test RoleBinding metadata + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-configmap-read-write-role-binding + documentIndex: 0 + - it: test RoleBinding subject + asserts: + - contains: + path: subjects + content: + kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: elt-operator + documentIndex: 0 + - it: test RoleBinding roleRef + asserts: + - equal: + path: roleRef + value: + kind: Role + name: ozgcloud-elster-transfer-operator-configmap-read-write-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + + - it: test Role metadata + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-configmap-read-write-role + documentIndex: 1 + - it: test RoleBinding rules + asserts: + - contains: + path: rules + content: + apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - update + - patch + documentIndex: 1 \ No newline at end of file diff --git a/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_patch_role_test.yaml b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_patch_role_test.yaml new file mode 100644 index 0000000..96bca88 --- /dev/null +++ b/elster-transfer/unit-tests/ozgcloud_elstertransfer_operator_deployment_patch_role_test.yaml @@ -0,0 +1,89 @@ +# +# 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: ozgcloud-elstertransfer-operator + namespace: test-namespace +set: + elsterTransferOperator: + namespace: elt-operator +templates: + - templates/ozgcloud_elstertransfer_operator_deployment_patch_role.yaml +tests: + - it: test RoleBinding metadata + asserts: + - isKind: + of: RoleBinding + documentIndex: 0 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-deployment-patch-role-binding + documentIndex: 0 + - it: test RoleBinding subject + asserts: + - contains: + path: subjects + content: + kind: ServiceAccount + name: ozgcloud-elster-transfer-operator-service-account + namespace: elt-operator + documentIndex: 0 + - it: test RoleBinding roleRef + asserts: + - equal: + path: roleRef + value: + kind: Role + name: ozgcloud-elster-transfer-operator-deployment-patch-role + apiGroup: rbac.authorization.k8s.io + documentIndex: 0 + + - it: test Role metadata + asserts: + - isKind: + of: Role + documentIndex: 1 + - isAPIVersion: + of: rbac.authorization.k8s.io/v1 + - equal: + path: metadata.name + value: ozgcloud-elster-transfer-operator-deployment-patch-role + documentIndex: 1 + - it: test RoleBinding rules + asserts: + - contains: + path: rules + content: + apiGroups: + - apps + resourceNames: + - elster-transfer + resources: + - deployments + verbs: + - patch + documentIndex: 1 \ No newline at end of file -- GitLab