This commit is contained in:
2026-09-28 16:28:35 +01:00
parent 666b1ff877
commit e27aa106fd
76 changed files with 5634 additions and 906 deletions
@@ -16,7 +16,7 @@
"description": "KeycloakGroupSpec defines the desired state of KeycloakGroup",
"properties": {
"clusterRealmRef": {
"description": "ClusterRealmRef is a reference to a ClusterKeycloakRealm\nOne of realmRef or clusterRealmRef must be specified",
"description": "ClusterRealmRef is a reference to a ClusterKeycloakRealm for top-level groups\nOne of realmRef, clusterRealmRef, or parentGroupRef must be specified",
"properties": {
"name": {
"description": "Name of the cluster-scoped resource",
@@ -30,20 +30,21 @@
"additionalProperties": false
},
"definition": {
"description": "Definition contains the Keycloak GroupRepresentation",
"description": "Definition contains the Keycloak GroupRepresentation. Set the group name\nvia spec.name.",
"type": "object",
"x-kubernetes-preserve-unknown-fields": true
},
"name": {
"description": "Name is the group name in Keycloak. Immutable once set.",
"minLength": 1,
"type": "string"
},
"parentGroupRef": {
"description": "ParentGroupRef is a reference to a parent KeycloakGroup (for nested groups)",
"description": "ParentGroupRef is a reference to a parent KeycloakGroup for nested groups.\nThe realm is derived from the parent chain, so realmRef and clusterRealmRef\nmust not be set alongside it.\nOne of realmRef, clusterRealmRef, or parentGroupRef must be specified",
"properties": {
"name": {
"description": "Name of the resource",
"type": "string"
},
"namespace": {
"description": "Namespace of the resource (optional, defaults to the same namespace)",
"type": "string"
}
},
"required": [
@@ -53,15 +54,11 @@
"additionalProperties": false
},
"realmRef": {
"description": "RealmRef is a reference to a KeycloakRealm\nOne of realmRef or clusterRealmRef must be specified",
"description": "RealmRef is a reference to a KeycloakRealm for top-level groups\nOne of realmRef, clusterRealmRef, or parentGroupRef must be specified",
"properties": {
"name": {
"description": "Name of the resource",
"type": "string"
},
"namespace": {
"description": "Namespace of the resource (optional, defaults to the same namespace)",
"type": "string"
}
},
"required": [
@@ -72,9 +69,20 @@
}
},
"required": [
"definition"
"definition",
"name"
],
"type": "object",
"x-kubernetes-validations": [
{
"message": "exactly one of realmRef, clusterRealmRef, or parentGroupRef must be set",
"rule": "(has(self.realmRef) ? 1 : 0) + (has(self.clusterRealmRef) ? 1 : 0) + (has(self.parentGroupRef) ? 1 : 0) == 1"
},
{
"message": "spec.name is immutable once set",
"rule": "!has(oldSelf.name) || self.name == oldSelf.name"
}
],
"additionalProperties": false
},
"status": {
@@ -140,6 +148,10 @@
"description": "GroupID is the Keycloak internal group ID",
"type": "string"
},
"groupName": {
"description": "GroupName is the resolved group name in Keycloak",
"type": "string"
},
"instance": {
"description": "Instance contains the resolved instance reference",
"properties": {