diff --git a/doc/ServiceAccount/serviceaccount-keycloakclient-read.yaml b/doc/ServiceAccount/serviceaccount-keycloakclient-read.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fdaada38c14628fdb7394b6ebfc512ba7af3ebd5 --- /dev/null +++ b/doc/ServiceAccount/serviceaccount-keycloakclient-read.yaml @@ -0,0 +1,53 @@ +# +# 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: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloakclient-viewer-role-binding +subjects: + - kind: ServiceAccount + name: ozg-operator-serviceaccount + namespace: by-torsten-ozg-operator-dev +roleRef: + kind: ClusterRole + name: ozg-operator-keycloakclient-viewer-role + apiGroup: rbac.authorization.k8s.io +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloakclient-viewer-role +rules: + - apiGroups: + - "*" + resources: + - ozgkeycloakclients + - ozgkeycloakclients/status + - ozgkeycloakclients/finalizers + verbs: + - get + - list + - watch diff --git a/doc/ServiceAccount/serviceaccount-keycloakclient-write.yaml b/doc/ServiceAccount/serviceaccount-keycloakclient-write.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f8bf6b17dc77922ecbe0ae10284e72ed0ac5c34e --- /dev/null +++ b/doc/ServiceAccount/serviceaccount-keycloakclient-write.yaml @@ -0,0 +1,57 @@ +# +# 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: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloakclient-writer-role-binding +subjects: + - kind: ServiceAccount + name: ozg-operator-serviceaccount + namespace: by-torsten-ozg-operator-dev +roleRef: + kind: ClusterRole + name: ozg-operator-keycloakclient-writer-role + apiGroup: rbac.authorization.k8s.io +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloakclient-writer-role +rules: + - apiGroups: + - "*" + resources: + - ozgkeycloakclients/status + - ozgkeycloakclients/finalizers + - ozgkeycloakclients + verbs: + - get + - list + - create + - delete + - patch + - update + - watch diff --git a/doc/ServiceAccount/serviceaccount-keycloakgroup-read.yaml b/doc/ServiceAccount/serviceaccount-keycloakgroup-read.yaml new file mode 100644 index 0000000000000000000000000000000000000000..b783031f0f6c8df069184c97946b75ec880efcaa --- /dev/null +++ b/doc/ServiceAccount/serviceaccount-keycloakgroup-read.yaml @@ -0,0 +1,53 @@ +# +# 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: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloakgroup-viewer-role-binding +subjects: + - kind: ServiceAccount + name: ozg-operator-serviceaccount + namespace: by-torsten-ozg-operator-dev +roleRef: + kind: ClusterRole + name: ozg-operator-keycloakgroup-viewer-role + apiGroup: rbac.authorization.k8s.io +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloakgroup-viewer-role +rules: + - apiGroups: + - "*" + resources: + - ozgkeycloakgroups + - ozgkeycloakgroups/status + - ozgkeycloakgroups/finalizers + verbs: + - get + - list + - watch diff --git a/doc/ServiceAccount/serviceaccount-keycloakgroup-write.yaml b/doc/ServiceAccount/serviceaccount-keycloakgroup-write.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4ec04886b445184a964c066fe106d6749441caf0 --- /dev/null +++ b/doc/ServiceAccount/serviceaccount-keycloakgroup-write.yaml @@ -0,0 +1,57 @@ +# +# 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: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloakgroup-writer-role-binding +subjects: + - kind: ServiceAccount + name: ozg-operator-serviceaccount + namespace: by-torsten-ozg-operator-dev +roleRef: + kind: ClusterRole + name: ozg-operator-keycloakgroup-writer-role + apiGroup: rbac.authorization.k8s.io +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: ozg-operator-keycloakgroup-writer-role +rules: + - apiGroups: + - "*" + resources: + - ozgkeycloakgroups/status + - ozgkeycloakgroups/finalizers + - ozgkeycloakgroups + verbs: + - get + - list + - create + - delete + - patch + - update + - watch diff --git a/doc/crds/operator.ozgcloud.de_OzgKeycloakClient.yaml b/doc/crds/operator.ozgcloud.de_OzgKeycloakClient.yaml new file mode 100644 index 0000000000000000000000000000000000000000..52393bef17ac4668f7433d7ba64b2b75f4b5490e --- /dev/null +++ b/doc/crds/operator.ozgcloud.de_OzgKeycloakClient.yaml @@ -0,0 +1,44 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: ozgkeycloakclients.operator.ozgcloud.de +spec: + group: operator.ozgcloud.de + names: + kind: OzgKeycloakClient + listKind: OzgKeycloakClientList + plural: ozgkeycloakclients + singular: ozgkeycloakclient + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: OzgKeycloakClient is the Schema for the keycloaks API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: Spec defines the desired state of Keycloak + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of Keycloak + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} diff --git a/doc/crds/operator.ozgcloud.de_OzgKeycloakGroup.yaml b/doc/crds/operator.ozgcloud.de_OzgKeycloakGroup.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ee88ea0051af823a7b7e9913f6c6d8615bb84500 --- /dev/null +++ b/doc/crds/operator.ozgcloud.de_OzgKeycloakGroup.yaml @@ -0,0 +1,44 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: ozgkeycloakgroups.operator.ozgcloud.de +spec: + group: operator.ozgcloud.de + names: + kind: OzgKeycloakGroup + listKind: OzgKeycloakGroupList + plural: ozgkeycloakgroups + singular: ozgkeycloakgroup + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: OzgKeycloakGroup is the Schema for the keycloaks API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: Spec defines the desired state of Keycloak + type: object + x-kubernetes-preserve-unknown-fields: true + status: + description: Status defines the observed state of Keycloak + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + served: true + storage: true + subresources: + status: {} diff --git a/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java index a576ebaaf7af152b87607dd924965f3e44a419e2..dc6f67408e183f9c3213ef32a753217aea02b132 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java @@ -29,7 +29,7 @@ public class KeycloakRealmReconciler implements Reconciler<OzgKeycloakRealm>, Cl String realmName = resource.getMetadata().getNamespace(); - log.info("Create KeycloakRealm " + realmName + " (crd name " + resource.getMetadata().getName() + ")"); + log.info("Reconcile KeycloakRealm " + realmName + " (crd name " + resource.getMetadata().getName() + ")"); service.createRealm(resource.getSpec(), realmName); diff --git a/src/main/java/de/ozgcloud/operator/keycloak/user/OzgKeycloakUserSpec.java b/src/main/java/de/ozgcloud/operator/keycloak/user/OzgKeycloakUserSpec.java index 84aff390af04b1c6774ae24c0f996f4a7d7ca330..2cbc39f9dd7ffda12205007b3c93c099f54920e1 100644 --- a/src/main/java/de/ozgcloud/operator/keycloak/user/OzgKeycloakUserSpec.java +++ b/src/main/java/de/ozgcloud/operator/keycloak/user/OzgKeycloakUserSpec.java @@ -87,10 +87,10 @@ class OzgKeycloakUserSpec { @AllArgsConstructor static class KeycloakUserSpecClientRole { - @JsonProperty("client_name") + @JsonProperty("name") private String clientName; - @JsonProperty("role_name") + @JsonProperty("role") private String roleName; } }