update crds

This commit is contained in:
2026-06-17 14:56:34 +01:00
parent 8e57124a0c
commit 3a8c946438
62 changed files with 3942 additions and 400 deletions
@@ -13,73 +13,172 @@
"type": "object"
},
"spec": {
"description": "ClusterKeycloakInstanceSpec defines the desired state of ClusterKeycloakInstance\nIt mirrors KeycloakInstanceSpec but is cluster-scoped",
"description": "ClusterKeycloakInstanceSpec defines the desired state of ClusterKeycloakInstance.\nIt mirrors KeycloakInstanceSpec but is cluster-scoped: secret references must\nspecify a namespace explicitly.",
"properties": {
"baseUrl": {
"description": "BaseUrl is the URL of the Keycloak server (e.g., http://keycloak:8080)",
"type": "string"
},
"client": {
"description": "Client contains optional service account client configuration",
"auth": {
"description": "Auth selects how the operator authenticates to Keycloak.\nExactly one of auth.passwordGrant or auth.clientCredentials must be set.",
"properties": {
"id": {
"description": "ID is the client ID for service account authentication",
"type": "string"
},
"secret": {
"description": "Secret is the client secret (optional for public clients)",
"type": "string"
}
},
"required": [
"id"
],
"type": "object",
"additionalProperties": false
},
"credentials": {
"description": "Credentials contains the reference to the admin credentials secret",
"properties": {
"secretRef": {
"description": "SecretRef contains the reference to the secret with credentials",
"clientCredentials": {
"description": "ClusterClientCredentialsSpec configures OAuth2 client_credentials\nauthentication for cluster-scoped instances.",
"properties": {
"name": {
"description": "Name is the name of the secret",
"clientId": {
"description": "ClientID, when set, overrides secretRef.clientIdKey.",
"type": "string"
},
"namespace": {
"description": "Namespace is the namespace of the secret (required for cluster-scoped resources)",
"type": "string"
"secretRef": {
"description": "ClusterClientCredentialsSecretRefSpec references a client-credentials Secret.\nNamespace is required because the resource is cluster-scoped.",
"properties": {
"clientIdKey": {
"default": "client-id",
"type": "string"
},
"clientSecretKey": {
"default": "client-secret",
"type": "string"
},
"name": {
"type": "string"
},
"namespace": {
"type": "string"
}
},
"required": [
"name",
"namespace"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"secretRef"
],
"type": "object",
"additionalProperties": false
},
"passwordGrant": {
"description": "ClusterPasswordGrantSpec configures password-grant authentication\nfor cluster-scoped instances.",
"properties": {
"secretRef": {
"description": "ClusterPasswordGrantSecretRefSpec references an admin-credentials Secret.\nNamespace is required because the resource is cluster-scoped.",
"properties": {
"name": {
"type": "string"
},
"namespace": {
"type": "string"
},
"passwordKey": {
"default": "password",
"type": "string"
},
"usernameKey": {
"default": "username",
"type": "string"
}
},
"required": [
"name",
"namespace"
],
"type": "object",
"additionalProperties": false
},
"passwordKey": {
"default": "password",
"description": "PasswordKey is the key in the secret for the password (defaults to \"password\")",
"type": "string"
},
"usernameKey": {
"default": "username",
"description": "UsernameKey is the key in the secret for the username (defaults to \"username\")",
"username": {
"description": "Username, when set, overrides secretRef.usernameKey.",
"type": "string"
}
},
"required": [
"name",
"namespace"
"secretRef"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"secretRef"
],
"type": "object",
"x-kubernetes-validations": [
{
"message": "exactly one of auth.passwordGrant or auth.clientCredentials must be set",
"rule": "has(self.passwordGrant) != has(self.clientCredentials)"
}
],
"additionalProperties": false
},
"baseUrl": {
"description": "BaseUrl is the URL of the Keycloak server (e.g., http://keycloak:8080)",
"type": "string"
},
"realm": {
"description": "Realm is the admin realm (defaults to \"master\")",
"type": "string"
},
"tls": {
"description": "TLS configures how the operator verifies the Keycloak server certificate.",
"properties": {
"caCert": {
"description": "ClusterCACertSource references a Secret or ConfigMap key containing a\nPEM-encoded CA bundle. Exactly one of secretRef or configMapRef must be set.",
"properties": {
"configMapRef": {
"description": "ClusterCACertConfigMapRefSpec is the cluster-scoped variant; namespace required.",
"properties": {
"key": {
"default": "ca.crt",
"type": "string"
},
"name": {
"type": "string"
},
"namespace": {
"type": "string"
}
},
"required": [
"name",
"namespace"
],
"type": "object",
"additionalProperties": false
},
"secretRef": {
"description": "ClusterCACertSecretRefSpec is the cluster-scoped variant; namespace required.",
"properties": {
"key": {
"default": "ca.crt",
"type": "string"
},
"name": {
"type": "string"
},
"namespace": {
"type": "string"
}
},
"required": [
"name",
"namespace"
],
"type": "object",
"additionalProperties": false
}
},
"type": "object",
"x-kubernetes-validations": [
{
"message": "exactly one of caCert.secretRef or caCert.configMapRef must be set",
"rule": "has(self.secretRef) != has(self.configMapRef)"
}
],
"additionalProperties": false
},
"insecureSkipVerify": {
"type": "boolean"
}
},
"type": "object",
"additionalProperties": false
},
"token": {
"description": "Token contains optional token caching configuration",
"properties": {
@@ -101,8 +200,8 @@
}
},
"required": [
"baseUrl",
"credentials"
"auth",
"baseUrl"
],
"type": "object",
"additionalProperties": false