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
@@ -15,70 +15,173 @@
"spec": {
"description": "KeycloakInstanceSpec defines the desired state of KeycloakInstance",
"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": "ClientCredentials configures OAuth2 client_credentials grant\nauthentication via a confidential client / service account.",
"properties": {
"name": {
"description": "Name is the name of the secret",
"clientId": {
"description": "ClientID, when set, overrides the value read from secretRef.clientIdKey.\nThe client ID is not a secret, so providing it inline is allowed.",
"type": "string"
},
"namespace": {
"description": "Namespace is the namespace of the secret (defaults to resource namespace)",
"type": "string"
"secretRef": {
"description": "ClientCredentialsSecretRefSpec references a Secret containing client credentials.",
"properties": {
"clientIdKey": {
"default": "client-id",
"description": "ClientIdKey is ignored when ClientCredentialsSpec.ClientID is set.",
"type": "string"
},
"clientSecretKey": {
"default": "client-secret",
"type": "string"
},
"name": {
"type": "string"
},
"namespace": {
"description": "Namespace defaults to the KeycloakInstance namespace when unset.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object",
"additionalProperties": false
}
},
"required": [
"secretRef"
],
"type": "object",
"additionalProperties": false
},
"passwordGrant": {
"description": "PasswordGrant configures resource-owner password grant authentication\nagainst a user account (typically the master-realm admin).",
"properties": {
"secretRef": {
"description": "PasswordGrantSecretRefSpec references a Secret containing admin credentials.",
"properties": {
"name": {
"type": "string"
},
"namespace": {
"description": "Namespace defaults to the KeycloakInstance namespace when unset.",
"type": "string"
},
"passwordKey": {
"default": "password",
"type": "string"
},
"usernameKey": {
"default": "username",
"description": "UsernameKey is ignored when PasswordGrantSpec.Username is set.",
"type": "string"
}
},
"required": [
"name"
],
"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 the value read from secretRef.usernameKey.\nThe admin username is not a secret, so providing it inline is allowed.",
"type": "string"
}
},
"required": [
"name"
"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": "CACert references a Secret or ConfigMap holding a PEM-encoded CA bundle\nused to verify the Keycloak server certificate.",
"properties": {
"configMapRef": {
"description": "CACertConfigMapRefSpec references a ConfigMap key holding a PEM-encoded CA\nbundle (e.g. kube-root-ca.crt or a cert-manager CA bundle).",
"properties": {
"key": {
"default": "ca.crt",
"type": "string"
},
"name": {
"type": "string"
},
"namespace": {
"description": "Namespace defaults to the KeycloakInstance namespace when unset.",
"type": "string"
}
},
"required": [
"name"
],
"type": "object",
"additionalProperties": false
},
"secretRef": {
"description": "CACertSecretRefSpec references a Secret key holding a PEM-encoded CA bundle.",
"properties": {
"key": {
"default": "ca.crt",
"type": "string"
},
"name": {
"type": "string"
},
"namespace": {
"description": "Namespace defaults to the KeycloakInstance namespace when unset.",
"type": "string"
}
},
"required": [
"name"
],
"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": {
"description": "InsecureSkipVerify disables TLS certificate verification. Do not enable\nin production.",
"type": "boolean"
}
},
"type": "object",
"additionalProperties": false
},
"token": {
"description": "Token contains optional token caching configuration",
"properties": {
@@ -100,8 +203,8 @@
}
},
"required": [
"baseUrl",
"credentials"
"auth",
"baseUrl"
],
"type": "object",
"additionalProperties": false