update crds
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user