Skip to main content

API Reference

littlehorse.io/v1

Resource Types:

LHCanaryAggregator

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHCanaryAggregatortrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHCanaryAggregator.spec

↩ Parent
NameTypeDescriptionRequired
imagestring

The Docker Image to use

true
imagePullPolicyenum

Image Pull Policy for the Canary Image


Enum: Always, IfNotPresent, Never

true
kafkaobject

Configures access to the Kafka cluster

true
storageobject

Configures storage for the LHCanary Statefulset

true
additionalConfigsmap[string]string

Configurations to pass to the LHCanaryAggregator.

false
defaultLabelsmap[string]string

Labels to put on all created resources

false
logLevelenum

Log Level for the aggregator


Enum: DEBUG, INFO, TRACE, WARN

false
podMonitorobject

Configures PodMonitor resources for the Aggregator

false
replicasinteger

Number of replicas for the LH Canary Statefulset


Minimum: 1

false

LHCanaryAggregator.spec.kafka

↩ Parent

Configures access to the Kafka cluster

NameTypeDescriptionRequired
lhKafkaRefobject

Points to an LHKafka Cluster

false
partitionsinteger

Number of partitions to use for the Canary's internal Kafka topics


Minimum: 1

false
replicationFactorinteger

Replication factor for the Canary Kafka Topics


Minimum: 0

false

LHCanaryAggregator.spec.kafka.lhKafkaRef

↩ Parent

Points to an LHKafka Cluster

NameTypeDescriptionRequired
clusterWideQuotasobject

Quotas for the Canary. Includes Metronomes as well as the Aggregator since both share the same credentials.

true
clusterNamestring

The name of the LHKaka resource that the Aggregator connects to

false

LHCanaryAggregator.spec.kafka.lhKafkaRef.clusterWideQuotas

↩ Parent

Quotas for the Canary. Includes Metronomes as well as the Aggregator since both share the same credentials.

NameTypeDescriptionRequired
consumerThroughputPerSecondint or string

The throughput in bytes per second that may be consumed by this Kafka principal

true
producerThroughputPerSecondint or string

The throughput in bytes per second that may be produced by this Kafka principal

true

LHCanaryAggregator.spec.storage

↩ Parent

Configures storage for the LHCanary Statefulset

NameTypeDescriptionRequired
storageClassNamestring

The name of the storageclass with which to provision storage for the server

true
volumeSizeint or string

The size of the persistent volume.

true

LHCanaryAggregator.spec.podMonitor

↩ Parent

Configures PodMonitor resources for the Aggregator

NameTypeDescriptionRequired
podMonitorLabelsmap[string]string

Labels to add to the generated PodMonitor resources

false

LHCanaryAggregator.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false

LHCanaryAggregator.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHCanaryMetronome

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHCanaryMetronometrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHCanaryMetronome.spec

↩ Parent
NameTypeDescriptionRequired
aggregatorRefobject

Specifies the LHCanaryAggregator for this Metronome

true
lhClusterobject

Specifies the LittleHorse Cluster to monitor

true
replicasinteger

Number of metronome replicas to deploy

true
storageobject

Storage Configuration for the Metronome

true
additionalConfigsmap[string]string

Configurations to pass to the LHCanaryMetronome.

false
defaultLabelsmap[string]string

Labels to put on all created resources

false
imagestring

The docker image for the LH Canary


Default: ghcr.io/littlehorse-enterprises/littlehorse/lh-canary:master

false
imagePullPolicyenum

ImagePullPolicy for the LH Canary


Enum: Always, IfNotPresent, Never

false
logLevelenum

Log Level for the metronome


Enum: DEBUG, INFO, TRACE, WARN

false

LHCanaryMetronome.spec.aggregatorRef

↩ Parent

Specifies the LHCanaryAggregator for this Metronome

NameTypeDescriptionRequired
namestring

Name of the LHCanaryAggregator that should aggregate beats from this Metronome.

false

LHCanaryMetronome.spec.lhCluster

↩ Parent

Specifies the LittleHorse Cluster to monitor

NameTypeDescriptionRequired
externalClusterRefobject

Specifies a LittleHorse Cluster not managed by the same Operator as this Metronome

false

LHCanaryMetronome.spec.lhCluster.externalClusterRef

↩ Parent

Specifies a LittleHorse Cluster not managed by the same Operator as this Metronome

NameTypeDescriptionRequired
apiHoststring

The API Host of the LH Cluster to monitor

true
apiPortinteger

The API Port of the LH Cluster to monitor

true
dataplaneIdstring

Specifies a LittleHorse Dataplane id to match prometheus metrics

true
serverIdstring

Specifies a LittleHorse Cluster id to match prometheus metrics

true
listenerNamestring

The Listener Name to connect to

false
oauthobject

Configures OAuth authentication with the LittleHorse server

false
protocolenum

The protocol of the listener either TLS or PLAINTEXT. Defaults to PLAINTEXT. If oauth is present it defaults to TLS


Enum: PLAINTEXT, TLS

false
tenantIdstring

The Tenant to use


Default: default

false

LHCanaryMetronome.spec.lhCluster.externalClusterRef.oauth

↩ Parent

Configures OAuth authentication with the LittleHorse server

NameTypeDescriptionRequired
accessTokenUrlstring

URL of the OIDC provider access token endpoint

true
credentialsobject

Configuration of the ClientId and ClientSecret for the OAuth client

true

LHCanaryMetronome.spec.lhCluster.externalClusterRef.oauth.credentials

↩ Parent

Configuration of the ClientId and ClientSecret for the OAuth client

NameTypeDescriptionRequired
secretRefobject

Reference to secret with a clientId and a clientSecret key. If those keys are not present, the deployment will fail

true

LHCanaryMetronome.spec.lhCluster.externalClusterRef.oauth.credentials.secretRef

↩ Parent

Reference to secret with a clientId and a clientSecret key. If those keys are not present, the deployment will fail

NameTypeDescriptionRequired
namestring
true

LHCanaryMetronome.spec.storage

↩ Parent

Storage Configuration for the Metronome

NameTypeDescriptionRequired
storageClassNamestring

The name of the storageclass with which to provision storage for the server

true
volumeSizeint or string

The size of the persistent volume.

true

LHCanaryMetronome.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false

LHCanaryMetronome.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHCluster

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHClustertrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHCluster.spec

↩ Parent
NameTypeDescriptionRequired
kafkaobject
true
serverobject
true
dashboardobject

Specifies to create Dashboard resources for the cluster

false
defaultLabelsmap[string]string
false
internalCommsobject

Configuration for internal communication (server to server and server to dashboard)

false
podMonitorobject
false

LHCluster.spec.kafka

↩ Parent
NameTypeDescriptionRequired
clusterPartitionsinteger
true
externalClusterRefobject
false
lhKafkaRefobject
false
replicationFactorinteger
false
strimziClusterRefobject
false

LHCluster.spec.kafka.externalClusterRef

↩ Parent
NameTypeDescriptionRequired
bootstrapServersstring
true
securityProtocolstring
true
createTopicsboolean
false
kafkaKeyStoreobject
false
kafkaTrustStoreobject
false
saslJaasConfigobject
false
saslMechanismstring
false

LHCluster.spec.kafka.externalClusterRef.kafkaKeyStore

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHCluster.spec.kafka.externalClusterRef.kafkaTrustStore

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHCluster.spec.kafka.externalClusterRef.saslJaasConfig

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHCluster.spec.kafka.lhKafkaRef

↩ Parent
NameTypeDescriptionRequired
clusterNamestring
true
clusterWideQuotasobject
true
deleteKafkaTopicsboolean

Delete Kafka Topics when the LHCluster is deleted. If false, the topics will be left in place.

false

LHCluster.spec.kafka.lhKafkaRef.clusterWideQuotas

↩ Parent
NameTypeDescriptionRequired
consumerThroughputPerSecondint or string

The throughput in bytes per second that may be consumed by this Kafka principal

true
producerThroughputPerSecondint or string

The throughput in bytes per second that may be produced by this Kafka principal

true

LHCluster.spec.kafka.strimziClusterRef

↩ Parent
NameTypeDescriptionRequired
clusterNamestring
true
createTopicsboolean
true
listenerobject
true
deleteKafkaTopicsboolean

Delete Kafka Topics when the LHCluster is deleted. If false, the topics will be left in place.

false
quotasobject
false

LHCluster.spec.kafka.strimziClusterRef.listener

↩ Parent
NameTypeDescriptionRequired
portinteger
true
authenticationstring
false
tlsboolean
false

LHCluster.spec.kafka.strimziClusterRef.quotas

↩ Parent
NameTypeDescriptionRequired
consumerByteRateinteger
false
controllerMutationRatenumber
false
producerByteRateinteger
false
requestPercentageinteger
false

LHCluster.spec.server

↩ Parent
NameTypeDescriptionRequired
replicasinteger

Desired number of LH Server pods


Minimum: 1

true
storageobject

Specification for persistent storage used by the server

true
authenticationobject

Determines how the LH Servers will determine Principal identity

false
computeobject

Specifies the compute resources allocated to the Server pods

false
coreStreamsCommitIntervalMsinteger

Sets commit.interval.ms for the Core topology.

false
experimentalConfigOverridemap[string]string

EXPERIMENTAL: specific configurations to override on the LH Server. Only applies to configs that are constant across all server instances.

false
hotStandbyReplicasinteger

The number of Kafka Streams standby replicas

false
imagestring

Image to use for the LH Server

false
imagePullPolicyenum

Image Pull Policy for LH Server Pods


Enum: Always, IfNotPresent, Never

false
lingerMsinteger

Desired value for linger.ms on the Command Producer.

false
listeners[]object

Listeners to expose on the LH Server for use by clients of the LHCluster

false
logLevelenum

Log Level for the LH Server


Enum: DEBUG, INFO, TRACE, WARN

false
nodeSelectormap[string]string

Node Selector for LH Server pods.

false
podAnnotationsmap[string]string

Labels to put on LH Server Pods

false
podLabelsmap[string]string

Annotations to put on LH Server Pods

false
priorityClassNamestring

Priority Class for LH Server pods.

false
rackAwarenessobject

Specifies rack awareness for the LH Servers

false
serviceAnnotationsmap[string]string

Annotations to put on LH Server Services

false
serviceLabelsmap[string]string

Labels to put on LH Server Services

false
sessionTimeoutMsinteger

Session Timeout for the LH Server Kafka Streams topology. Default: 45000

false
streamsMetricsLevelenum

Level of Kafka Streams metrics to collect. Setting to DEBUG or TRACE impacts performance.


Enum: DEBUG, INFO, TRACE, WARN

false
tolerations[]object

Tolerations for LH Server pods.

false
versionstring

Version of the LH Server to deploy

false

LHCluster.spec.server.storage

↩ Parent

Specification for persistent storage used by the server

NameTypeDescriptionRequired
storageClassNamestring

The name of the storageclass with which to provision storage for the server

true
volumeSizeint or string

The size of the persistent volume.

true

LHCluster.spec.server.authentication

↩ Parent

Determines how the LH Servers will determine Principal identity

NameTypeDescriptionRequired
mtlsobject
false
oauthobject
false

LHCluster.spec.server.authentication.mtls

↩ Parent
NameTypeDescriptionRequired
clientCaCertobject
true

LHCluster.spec.server.authentication.mtls.clientCaCert

↩ Parent
NameTypeDescriptionRequired
secretRefobject
true

LHCluster.spec.server.authentication.mtls.clientCaCert.secretRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHCluster.spec.server.authentication.oauth

↩ Parent
NameTypeDescriptionRequired
credentialsobject
true
introspectionEndpointUrlstring
true

LHCluster.spec.server.authentication.oauth.credentials

↩ Parent
NameTypeDescriptionRequired
secretRefobject
true

LHCluster.spec.server.authentication.oauth.credentials.secretRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHCluster.spec.server.compute

↩ Parent

Specifies the compute resources allocated to the Server pods

NameTypeDescriptionRequired
cpuint or string

The amount of CPU to assign to the server pod. Sets request and limit. Influences rocksdb and kafka streams configs.

false
memoryint or string

The amount of memory to assign to the server pod. Sets request and limit. Influences RocksDB Configs.

false

LHCluster.spec.server.listeners[index]

↩ Parent
NameTypeDescriptionRequired
namestring
true
portinteger
true
advertisedListenersobject
false
authenticationobject
false
infrastructureobject
false
tlsobject
false

LHCluster.spec.server.listeners[index].advertisedListeners

↩ Parent
NameTypeDescriptionRequired
bootstrapobject
false
serverHostSuffixstring
false
servers[]object
false

LHCluster.spec.server.listeners[index].advertisedListeners.bootstrap

↩ Parent
NameTypeDescriptionRequired
hoststring
true

LHCluster.spec.server.listeners[index].advertisedListeners.servers[index]

↩ Parent
NameTypeDescriptionRequired
hoststring
true
portinteger
true

LHCluster.spec.server.listeners[index].authentication

↩ Parent
NameTypeDescriptionRequired
typeenum

Enum: MTLS, NONE, OAUTH

true

LHCluster.spec.server.listeners[index].infrastructure

↩ Parent
NameTypeDescriptionRequired
ingressobject

Specifies to create Ingress resources for the listener.

false
tlsRouteobject

Specifies to create TLSRoute according to the Gateway API. Requires a listener with the 'Passthrough' TLS mode enabled.

false

LHCluster.spec.server.listeners[index].infrastructure.ingress

↩ Parent

Specifies to create Ingress resources for the listener.

NameTypeDescriptionRequired
ingressClassNamestring
true
ingressAnnotationsmap[string]string
false

LHCluster.spec.server.listeners[index].infrastructure.tlsRoute

↩ Parent

Specifies to create TLSRoute according to the Gateway API. Requires a listener with the 'Passthrough' TLS mode enabled.

NameTypeDescriptionRequired
advertisedPortinteger

The advertised port. May differ from Gateway port depending on load balancer configuration.

true
gatewayRefobject

Specifies the Gateway to create routes for.

true
tlsRouteAnnotationsmap[string]string

Optional additional annotations to apply to the generated TLSRoutes.

false
tlsRouteLabelsmap[string]string

Optional additional labels to apply to the generated TLSRoutes.

false

LHCluster.spec.server.listeners[index].infrastructure.tlsRoute.gatewayRef

↩ Parent

Specifies the Gateway to create routes for.

NameTypeDescriptionRequired
namestring

The name of the Gateway.

true
sectionNamestring

The sectionName, usually a port name, of the referenced Gateway to attach to.

true
namespacestring

The namespace of the Gateway to attach to. Defaults to current namespace.

false

LHCluster.spec.server.listeners[index].tls

↩ Parent
NameTypeDescriptionRequired
issuerRefobject
false
secretRefobject
false

LHCluster.spec.server.listeners[index].tls.issuerRef

↩ Parent
NameTypeDescriptionRequired
namestring

Name of the CertManager Issuer or ClusterIssuer

true
kindstring

Kind of the CertManager Issuer or ClusterIssuer

false

LHCluster.spec.server.listeners[index].tls.secretRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHCluster.spec.server.rackAwareness

↩ Parent

Specifies rack awareness for the LH Servers

NameTypeDescriptionRequired
zoneIds[]string

List of all possible Racks. Required to avoid giving the Operator a ClusterRole.

true
zoneKeystring

The name of the label on K8s nodes which contains the Rack information

true

LHCluster.spec.server.tolerations[index]

↩ Parent
NameTypeDescriptionRequired
effectstring
false
keystring
false
operatorstring
false
tolerationSecondsinteger
false
valuestring
false

LHCluster.spec.dashboard

↩ Parent

Specifies to create Dashboard resources for the cluster

NameTypeDescriptionRequired
imagestring

Dashboard image for the pod. If not provided it defaults to ghcr.io/littlehorse-enterprises/littlehorse/lh-dashboard with either latest or the server version if spec.server.version is set

false
imagePullPolicystring

Image pull policy for the dashboard container

false
infrastructureobject

Configures K8s infrastructure to allow external access to the dashboard.

false
oauthobject

Configure OAuth for users of the dashboard

false
replicasinteger

Number of dashboard pod replicas. Defaults to 1


Minimum: 1

false
tlsobject

Configure TLS for port that clients use to connect to the dashboard.

false

LHCluster.spec.dashboard.infrastructure

↩ Parent

Configures K8s infrastructure to allow external access to the dashboard.

NameTypeDescriptionRequired
ingressobject

Specifies to create Ingress resources for the dashboard

false
tlsRouteobject

Specifies to create TLSRoute according to the Gateway API. Requires a listener with the 'Passthrough' TLS mode enabled.

false

LHCluster.spec.dashboard.infrastructure.ingress

↩ Parent

Specifies to create Ingress resources for the dashboard

NameTypeDescriptionRequired
hostnamestring

The host to be used in the Ingress resource rule

true
ingressClassNamestring

The name of the Ingress class to be used in the ingressClassName property of the Ingress resource

true
annotationsmap[string]string

Annotations to put in the Ingress resource

false

LHCluster.spec.dashboard.infrastructure.tlsRoute

↩ Parent

Specifies to create TLSRoute according to the Gateway API. Requires a listener with the 'Passthrough' TLS mode enabled.

NameTypeDescriptionRequired
gatewayRefobject

Specifies the Gateway to create routes for.

true
hostnamestring

The host to be added to the TLSRoute hostnames

true
annotationsmap[string]string

Optional additional annotations to apply to the generated TLSRoute.

false
labelsmap[string]string

Optional additional labels to apply to the generated TLSRoute.

false

LHCluster.spec.dashboard.infrastructure.tlsRoute.gatewayRef

↩ Parent

Specifies the Gateway to create routes for.

NameTypeDescriptionRequired
namestring

The name of the Gateway.

true
sectionNamestring

The sectionName, usually a port name, of the referenced Gateway to attach to.

true
namespacestring

The namespace of the Gateway to attach to. Defaults to current namespace.

false

LHCluster.spec.dashboard.oauth

↩ Parent

Configure OAuth for users of the dashboard

NameTypeDescriptionRequired
callbackUrlstring

Canonical URL of the Dashboard site. Used by the Authorization Server to return the control to the LH Dashboard.More information can be found here: https://next-auth.js.org/configuration/options#nextauth_url

true
secretRefobject

Reference to a Secret with the OAuth clientId and clientSecret. If clientId entry and clientSecret entry are not present on the Secret, the deployment will fail

true
serverUrlstring

OAuth server url

true
callbackUrlInternalstring

Internal URL of the Dashboard server. Used by the Dashboard Server to query itself.Should only be set when the callbackUrl cannot be reached by the dashboard server.More information can be found here: https://next-auth.js.org/configuration/options#nextauth_url_internal

false

LHCluster.spec.dashboard.oauth.secretRef

↩ Parent

Reference to a Secret with the OAuth clientId and clientSecret. If clientId entry and clientSecret entry are not present on the Secret, the deployment will fail

NameTypeDescriptionRequired
namestring
true

LHCluster.spec.dashboard.tls

↩ Parent

Configure TLS for port that clients use to connect to the dashboard.

NameTypeDescriptionRequired
secretRefobject

Configures the dashboard to use TLS by providing a reference to a Secret with a tls.crt for the cert and a tls.key entry for the key. If tls.cert and tls.key are not present on the Secret, the deployment will fail

true

LHCluster.spec.dashboard.tls.secretRef

↩ Parent

Configures the dashboard to use TLS by providing a reference to a Secret with a tls.crt for the cert and a tls.key entry for the key. If tls.cert and tls.key are not present on the Secret, the deployment will fail

NameTypeDescriptionRequired
namestring
true

LHCluster.spec.internalComms

↩ Parent

Configuration for internal communication (server to server and server to dashboard)

NameTypeDescriptionRequired
encryptionEnabledboolean

Automatically generates certs and the appropriate configuration for encrypting internal communication (server to server and server to dashboard). This property shouldn't be changed once set, or else it will cause downtime. LHO_CERTMANAGER_ENABLED should be set to true for this feature to work

true

LHCluster.spec.podMonitor

↩ Parent
NameTypeDescriptionRequired
metricRelabelings[]object

Relabelings for the metrics exposed by the server

false
podMonitorLabelsmap[string]string

Labels to add to the generated PodMonitor resources

false

LHCluster.spec.podMonitor.metricRelabelings[index]

↩ Parent
NameTypeDescriptionRequired
actionstring
false
modulusinteger
false
regexstring
false
replacementstring
false
separatorstring
false
sourceLabels[]string
false
targetLabelstring
false

LHCluster.status

↩ Parent
NameTypeDescriptionRequired
adminPrincipalstring
false
clusterHealthobject
false
conditions[]object
false
kafkaTypeenum

Enum: EXTERNAL, LHKAFKA, STRIMZI

false
lastBounceTimeinteger
false
lastBouncedPodinteger
false
observedGenerationinteger
false
partitionsinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false
volumeSizeInternalint or string
false

LHCluster.status.clusterHealth

↩ Parent
NameTypeDescriptionRequired
offlineTasksinteger

Number of Active Core Streams Tasks that are under restoration.

false
streamTasks[]object

Health of each Core Topology Stream Task, ordered by partition number

false
underReplicatedCoreTasksinteger

Total number of Core Streams Tasks that don't have enough caught-up Standbys

false
warmingUpCoreTasksinteger

Number of Core Streams Tasks that are being moved to different instances

false

LHCluster.status.clusterHealth.streamTasks[index]

↩ Parent
NameTypeDescriptionRequired
activeTaskobject
false
standbys[]object
false

LHCluster.status.clusterHealth.streamTasks[index].activeTask

↩ Parent
NameTypeDescriptionRequired
instanceIdinteger
false
restorationLaginteger
false

LHCluster.status.clusterHealth.streamTasks[index].standbys[index]

↩ Parent
NameTypeDescriptionRequired
instanceIdinteger
false
laginteger
false

LHCluster.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHDashboard

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHDashboardtrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHDashboard.spec

↩ Parent
NameTypeDescriptionRequired
apiobject

Configures how the dashboard talks to the LH Server.

true
imagestring

The image to be used by the Dashboard.

true
replicasinteger

The number of dashboard Pods to deploy.


Minimum: 1

true
authenticationobject

Configures authentication for users of the dashboard.

false
defaultLabelsmap[string]string

Labels to place on all dependent resources of the LHDashboard.

false
imagePullPolicystring

The ImagePullPolicy to be used for the Dashboard Pods.

false
infrastructureobject

Configures ingress-like infrastructure to be deployed for the LHDashboard.

false
resourcesobject

Configures compute resources for the dashboard pods.

false
tlsobject

Configures TLS for incoming connections.

false

LHDashboard.spec.api

↩ Parent

Configures how the dashboard talks to the LH Server.

NameTypeDescriptionRequired
hoststring
true
portinteger
true
caCertobject
false
protocolenum

Enum: PLAINTEXT, TLS

false

LHDashboard.spec.api.caCert

↩ Parent
NameTypeDescriptionRequired
secretRefobject
true

LHDashboard.spec.api.caCert.secretRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHDashboard.spec.authentication

↩ Parent

Configures authentication for users of the dashboard.

NameTypeDescriptionRequired
oauthobject
true

LHDashboard.spec.authentication.oauth

↩ Parent
NameTypeDescriptionRequired
callbackUrlstring

Canonical URL of the Dashboard site. Used by the Authorization Server to return the control to the LH Dashboard.More information can be found here: https://next-auth.js.org/configuration/options#nextauth_url

true
credentialsobject
true
serverUrlstring

OAuth server url

true
callbackUrlInternalstring

Internal URL of the Dashboard server. Used by the Dashboard Server to query itself.Should only be set when the callbackUrl cannot be reached by the dashboard server.More information can be found here: https://next-auth.js.org/configuration/options#nextauth_url_internal

false

LHDashboard.spec.authentication.oauth.credentials

↩ Parent
NameTypeDescriptionRequired
secretRefobject

Reference to secret with a clientId and a clientSecret key. If those keys are not present, the deployment will fail

true

LHDashboard.spec.authentication.oauth.credentials.secretRef

↩ Parent

Reference to secret with a clientId and a clientSecret key. If those keys are not present, the deployment will fail

NameTypeDescriptionRequired
namestring
true

LHDashboard.spec.infrastructure

↩ Parent

Configures ingress-like infrastructure to be deployed for the LHDashboard.

NameTypeDescriptionRequired
ingressobject

Specifies to create Ingress resources for the dashboard

false
tlsRouteobject

Specifies to create TLSRoute according to the Gateway API. Requires a listener with the 'Passthrough' TLS mode enabled.

false

LHDashboard.spec.infrastructure.ingress

↩ Parent

Specifies to create Ingress resources for the dashboard

NameTypeDescriptionRequired
hostnamestring

The host to be used in the Ingress resource rule

true
ingressClassNamestring

The name of the Ingress class to be used in the ingressClassName property of the Ingress resource

true
annotationsmap[string]string

Annotations to put in the Ingress resource

false

LHDashboard.spec.infrastructure.tlsRoute

↩ Parent

Specifies to create TLSRoute according to the Gateway API. Requires a listener with the 'Passthrough' TLS mode enabled.

NameTypeDescriptionRequired
gatewayRefobject

Specifies the Gateway to create routes for.

true
hostnamestring

The host to be added to the TLSRoute hostnames

true
annotationsmap[string]string

Optional additional annotations to apply to the generated TLSRoute.

false
labelsmap[string]string

Optional additional labels to apply to the generated TLSRoute.

false

LHDashboard.spec.infrastructure.tlsRoute.gatewayRef

↩ Parent

Specifies the Gateway to create routes for.

NameTypeDescriptionRequired
namestring

The name of the Gateway.

true
sectionNamestring

The sectionName, usually a port name, of the referenced Gateway to attach to.

true
namespacestring

The namespace of the Gateway to attach to. Defaults to current namespace.

false

LHDashboard.spec.resources

↩ Parent

Configures compute resources for the dashboard pods.

NameTypeDescriptionRequired
claims[]object
false
limitsmap[string]int or string
false
requestsmap[string]int or string
false

LHDashboard.spec.resources.claims[index]

↩ Parent
NameTypeDescriptionRequired
namestring
false
requeststring
false

LHDashboard.spec.tls

↩ Parent

Configures TLS for incoming connections.

NameTypeDescriptionRequired
secretRefobject

Configures the dashboard to use TLS by providing a reference to a Secret with a tls.crt for the cert and a tls.key entry for the key. If tls.cert and tls.key are not present on the Secret, the deployment will fail

true

LHDashboard.spec.tls.secretRef

↩ Parent

Configures the dashboard to use TLS by providing a reference to a Secret with a tls.crt for the cert and a tls.key entry for the key. If tls.cert and tls.key are not present on the Secret, the deployment will fail

NameTypeDescriptionRequired
namestring
true

LHDashboard.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false

LHDashboard.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHKafkaConnector

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHKafkaConnectortrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHKafkaConnector.spec

↩ Parent
NameTypeDescriptionRequired
classNamestring

The Java class that implements the connector

true
configobject

The configuration for this Kafka Connector

true
kafkaRefobject

The name of the LHKafka cluster that this connector connects to

true
tasksMaxinteger

Maximum number of tasks for this connector.


Minimum: 1

true
autoRestartobject

Allows specifying automatic restarts for failed connectors

false
desiredStateenum

The desired state of the connector. Either running, paused, or stopped


Enum: paused, running, stopped

false
plugins[]object

List of plugins required to run this connector

false
sinkTopicstring

The topic that this connector should use. Only for source connector.

false
sourceTopicsstring

The topic regex that this connector should use. Only for sink connector.

false

LHKafkaConnector.spec.config

↩ Parent

The configuration for this Kafka Connector

NameTypeDescriptionRequired
configSecretobject

A reference to a secret containing configuration properties for the connector logic.

false
fileBasedConfigs[]object

Configurations that require mounting a file on a disk (eg. TLS certificates).

false
plainConfigsmap[string]string

App-level configurations for the connector which can be set in plaintext.

false

LHKafkaConnector.spec.config.configSecret

↩ Parent

A reference to a secret containing configuration properties for the connector logic.

NameTypeDescriptionRequired
namestring
true

LHKafkaConnector.spec.kafkaRef

↩ Parent

The name of the LHKafka cluster that this connector connects to

NameTypeDescriptionRequired
namestring

The name of the LHKafka cluster that this connector connects to

true

LHKafkaConnector.spec.autoRestart

↩ Parent

Allows specifying automatic restarts for failed connectors

NameTypeDescriptionRequired
enabledboolean
false
maxRestartsinteger
false

LHKafkaConnector.spec.plugins[index]

↩ Parent
NameTypeDescriptionRequired
artifacts[]object
false
namestring
false

LHKafkaConnector.spec.plugins[index].artifacts[index]

↩ Parent
NameTypeDescriptionRequired
jarobject
false
mavenobject
false
otherobject
false
tgzobject
false
zipobject
false

LHKafkaConnector.spec.plugins[index].artifacts[index].jar

↩ Parent
NameTypeDescriptionRequired
insecureboolean
false
sha512sumstring
false
urlstring
false

LHKafkaConnector.spec.plugins[index].artifacts[index].maven

↩ Parent
NameTypeDescriptionRequired
artifactstring
false
groupstring
false
insecureboolean
false
repositorystring
false
versionstring
false

LHKafkaConnector.spec.plugins[index].artifacts[index].other

↩ Parent
NameTypeDescriptionRequired
fileNamestring
false
insecureboolean
false
sha512sumstring
false
urlstring
false

LHKafkaConnector.spec.plugins[index].artifacts[index].tgz

↩ Parent
NameTypeDescriptionRequired
insecureboolean
false
sha512sumstring
false
urlstring
false

LHKafkaConnector.spec.plugins[index].artifacts[index].zip

↩ Parent
NameTypeDescriptionRequired
insecureboolean
false
sha512sumstring
false
urlstring
false

LHKafkaConnector.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false

LHKafkaConnector.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHKafka

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHKafkatrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHKafka.spec

↩ Parent
NameTypeDescriptionRequired
controllersobject

Specifies the controllers for the Kafka cluster. If brokers is not set, then these pods are both brokers and controllers.

true
brokersobject

Specifies the brokers for the Kafka cluster. If not set, then the controllers are both brokers and controllers.

false
connectobject

Configures the deployment of a Kafka Connect cluster connected to this LHKafka.

false
externalAccessobject

Configures external access to the Kafka cluster from outside Kubernetes

false
kafkaVersionstring

The desired kafka version. If null (recommended), uses the newest available version

false
podMonitorobject

Configures PodMonitor's to be deployed for this LHKafka

false
rackNodeLabelstring

The k8s node label to be used for rack awareness

false

LHKafka.spec.controllers

↩ Parent

Specifies the controllers for the Kafka cluster. If brokers is not set, then these pods are both brokers and controllers.

NameTypeDescriptionRequired
replicasinteger

Minimum: 1

true
storageobject
true
computeobject
false
nodeSelectorTerms[]object
false
tolerations[]object
false

LHKafka.spec.controllers.storage

↩ Parent
NameTypeDescriptionRequired
storageClassNamestring

The name of the storageclass with which to provision storage for the server

true
volumeSizeint or string

The size of the persistent volume.

true

LHKafka.spec.controllers.compute

↩ Parent
NameTypeDescriptionRequired
cpuint or string

The amount of CPU to assign to the server pod. Sets request and limit. Influences rocksdb and kafka streams configs.

false
memoryint or string

The amount of memory to assign to the server pod. Sets request and limit. Influences RocksDB Configs.

false

LHKafka.spec.controllers.nodeSelectorTerms[index]

↩ Parent
NameTypeDescriptionRequired
matchExpressions[]object
false
matchFields[]object
false

LHKafka.spec.controllers.nodeSelectorTerms[index].matchExpressions[index]

↩ Parent
NameTypeDescriptionRequired
keystring
false
operatorstring
false
values[]string
false

LHKafka.spec.controllers.nodeSelectorTerms[index].matchFields[index]

↩ Parent
NameTypeDescriptionRequired
keystring
false
operatorstring
false
values[]string
false

LHKafka.spec.controllers.tolerations[index]

↩ Parent
NameTypeDescriptionRequired
effectstring
false
keystring
false
operatorstring
false
tolerationSecondsinteger
false
valuestring
false

LHKafka.spec.brokers

↩ Parent

Specifies the brokers for the Kafka cluster. If not set, then the controllers are both brokers and controllers.

NameTypeDescriptionRequired
replicasinteger

Minimum: 1

true
storageobject
true
computeobject
false
nodeSelectorTerms[]object
false
tolerations[]object
false

LHKafka.spec.brokers.storage

↩ Parent
NameTypeDescriptionRequired
storageClassNamestring

The name of the storageclass with which to provision storage for the server

true
volumeSizeint or string

The size of the persistent volume.

true

LHKafka.spec.brokers.compute

↩ Parent
NameTypeDescriptionRequired
cpuint or string

The amount of CPU to assign to the server pod. Sets request and limit. Influences rocksdb and kafka streams configs.

false
memoryint or string

The amount of memory to assign to the server pod. Sets request and limit. Influences RocksDB Configs.

false

LHKafka.spec.brokers.nodeSelectorTerms[index]

↩ Parent
NameTypeDescriptionRequired
matchExpressions[]object
false
matchFields[]object
false

LHKafka.spec.brokers.nodeSelectorTerms[index].matchExpressions[index]

↩ Parent
NameTypeDescriptionRequired
keystring
false
operatorstring
false
values[]string
false

LHKafka.spec.brokers.nodeSelectorTerms[index].matchFields[index]

↩ Parent
NameTypeDescriptionRequired
keystring
false
operatorstring
false
values[]string
false

LHKafka.spec.brokers.tolerations[index]

↩ Parent
NameTypeDescriptionRequired
effectstring
false
keystring
false
operatorstring
false
tolerationSecondsinteger
false
valuestring
false

LHKafka.spec.connect

↩ Parent

Configures the deployment of a Kafka Connect cluster connected to this LHKafka.

NameTypeDescriptionRequired
quotasobject

Quotas for the Kafka Connect cluster

true
replicasinteger

The number of Kafka Connect workers to deploy


Minimum: 1

true
computeobject
false

LHKafka.spec.connect.quotas

↩ Parent

Quotas for the Kafka Connect cluster

NameTypeDescriptionRequired
consumerThroughputPerSecondint or string

The throughput in bytes per second that may be consumed by this Kafka principal

true
producerThroughputPerSecondint or string

The throughput in bytes per second that may be produced by this Kafka principal

true

LHKafka.spec.connect.compute

↩ Parent
NameTypeDescriptionRequired
cpuint or string

The amount of CPU to assign to the server pod. Sets request and limit. Influences rocksdb and kafka streams configs.

false
memoryint or string

The amount of memory to assign to the server pod. Sets request and limit. Influences RocksDB Configs.

false

LHKafka.spec.externalAccess

↩ Parent

Configures external access to the Kafka cluster from outside Kubernetes

NameTypeDescriptionRequired
advertisedListenersobject

Specifies the advertised listeners that clients will connect to

true
tlsobject

Configures TLS for the external access

true
infrastructureobject

Configures K8s resources to be deployed to access the LHKafka

false

LHKafka.spec.externalAccess.advertisedListeners

↩ Parent

Specifies the advertised listeners that clients will connect to

NameTypeDescriptionRequired
wildcardDomainSuffixstring

Subdomain that all brokers will be exposed on. Must start with a '.' character.

true
advertisedPortinteger

Port that clients will use to connect to the Kafka cluster.


Default: 9092

false

LHKafka.spec.externalAccess.tls

↩ Parent

Configures TLS for the external access

NameTypeDescriptionRequired
secretRefobject

Reference to a Secret containing a TLS certificate to be used by the Kafka brokers

false

LHKafka.spec.externalAccess.tls.secretRef

↩ Parent

Reference to a Secret containing a TLS certificate to be used by the Kafka brokers

NameTypeDescriptionRequired
namestring
true

LHKafka.spec.externalAccess.infrastructure

↩ Parent

Configures K8s resources to be deployed to access the LHKafka

NameTypeDescriptionRequired
ingressesobject

Specifies Ingresses to expose LHKafka

false
tlsRoutesobject

Specifies TLSRoute's to create to access LHKafka using Gateway API

false

LHKafka.spec.externalAccess.infrastructure.ingresses

↩ Parent

Specifies Ingresses to expose LHKafka

NameTypeDescriptionRequired
ingressClassNamestring

Specifies Ingress class name

true
annotationsmap[string]string

Specifies Annotations as key value pair

false

LHKafka.spec.externalAccess.infrastructure.tlsRoutes

↩ Parent

Specifies TLSRoute's to create to access LHKafka using Gateway API

NameTypeDescriptionRequired
gatewayRefobject

Specifies the Gateway to create routes for.

true
annotationsmap[string]string

Optional additional annotations to apply to the generated TLSRoutes.

false
labelsmap[string]string

Optional additional labels to apply to the generated TLSRoutes.

false

LHKafka.spec.externalAccess.infrastructure.tlsRoutes.gatewayRef

↩ Parent

Specifies the Gateway to create routes for.

NameTypeDescriptionRequired
namestring

The name of the Gateway.

true
sectionNamestring

The sectionName, usually a port name, of the referenced Gateway to attach to.

true
namespacestring

The namespace of the Gateway to attach to. Defaults to current namespace.

false

LHKafka.spec.podMonitor

↩ Parent

Configures PodMonitor's to be deployed for this LHKafka

NameTypeDescriptionRequired
podMonitorLabelsmap[string]string
false

LHKafka.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
currentActiveBrokers[]integer
false
internalTopicReplicationFactorinteger
false
kafkaVersionstring
false
numControllersinteger
false
observedGenerationinteger
false
ongoingRebalanceobject
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false
rackNodeLabelstring
false

LHKafka.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHKafka.status.ongoingRebalance

↩ Parent
NameTypeDescriptionRequired
dedicatedBrokersAfter[]integer
false
dedicatedBrokersBefore[]integer
false
lastRebalanceAttemptinteger
false
shouldHoldBrokerNodePoolboolean
false
shouldHoldMixedPoolboolean
false

LHKafkaUser

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHKafkaUsertrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHKafkaUser.spec

↩ Parent
NameTypeDescriptionRequired
quotasobject

The quotas for this user.

true
aclsobject

Configures the ACL's of the Kafka User.

false
aclsPrefixstring

DEPRECATED: use acls.simple.prefix instead The prefix for the ACL's that will be created for this user. Mutually exclusive with strimziAcls. If this is provided, then the LH Operator will create opinionated ACL's that allow the user to read/write to topics, txns, and consumer groups that start with this prefix, but not create or delete topics nor take cluster actions

false
externalAccessobject

Configures authentication for the Kafka User to access Kafka from outside the K8s cluster

false
lhKafkaClusterNamestring

DEPRECATED: use lhKafkaRef instead. The name of the LHKafka cluster this user will be created in. Must be in the same namespace.

false
lhKafkaRefobject

Reference to the LHKafka in which this LHKafkaUser will be created.

false

LHKafkaUser.spec.quotas

↩ Parent

The quotas for this user.

NameTypeDescriptionRequired
consumerThroughputPerSecondint or string

The throughput in bytes per second that may be consumed by this Kafka principal

true
producerThroughputPerSecondint or string

The throughput in bytes per second that may be produced by this Kafka principal

true

LHKafkaUser.spec.acls

↩ Parent

Configures the ACL's of the Kafka User.

NameTypeDescriptionRequired
simpleobject

Simple ACL's designed to namespace-scope a user, allowing actions to publish/consume from topics and groups within a prefix scope.

true

LHKafkaUser.spec.acls.simple

↩ Parent

Simple ACL's designed to namespace-scope a user, allowing actions to publish/consume from topics and groups within a prefix scope.

NameTypeDescriptionRequired
prefixstring

The prefix for the ACL's that will be created for this user. Mutually exclusive with strimziAcls. If this is provided, then the LH Operator will create opinionated ACL's that allow the user to read/write to topics, txns, and consumer groups that start with this prefix, but not create or delete topics nor take cluster actions

true
allowTopicManagementboolean

Whether the user should be able to create and delete topics

false

LHKafkaUser.spec.externalAccess

↩ Parent

Configures authentication for the Kafka User to access Kafka from outside the K8s cluster

NameTypeDescriptionRequired
scramSha512object

Configures the SCRAM-SHA-512 authentication for the user

true

LHKafkaUser.spec.externalAccess.scramSha512

↩ Parent

Configures the SCRAM-SHA-512 authentication for the user

NameTypeDescriptionRequired
passwordSecretRefobject

Reference to the secret containing the password for the user. If null, one will be generated with a random password, and a name matching the name of the LHKafkaUser but with the prefix 'lhku-'.

false

LHKafkaUser.spec.externalAccess.scramSha512.passwordSecretRef

↩ Parent

Reference to the secret containing the password for the user. If null, one will be generated with a random password, and a name matching the name of the LHKafkaUser but with the prefix 'lhku-'.

NameTypeDescriptionRequired
secretKeyRefobject
false

LHKafkaUser.spec.externalAccess.scramSha512.passwordSecretRef.secretKeyRef

↩ Parent
NameTypeDescriptionRequired
keystring
false
namestring
false
optionalboolean
false

LHKafkaUser.spec.lhKafkaRef

↩ Parent

Reference to the LHKafka in which this LHKafkaUser will be created.

NameTypeDescriptionRequired
namestring

Name of the LHKafka cluster this user will be created in. Must be in the same namespace.

true

LHKafkaUser.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
lhKafkaClusterNamestring
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false
readyboolean
false

LHKafkaUser.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHKeycloakClient

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHKeycloakClienttrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHKeycloakClient.spec

↩ Parent
NameTypeDescriptionRequired
clientobject
true
realmobject
true

LHKeycloakClient.spec.client

↩ Parent
NameTypeDescriptionRequired
clientIdstring
true
authorizationServicesEnabledboolean
false
clientSecretobject

Customize the clientSecret. Keycloak will create a secret if empty

false
descriptionstring
false
directAccessGrantsEnabledboolean
false
enabledboolean
false
frontchannelLogoutboolean
false
implicitFlowEnabledboolean
false
protocolstring
false
protocolMappers[]object
false
publicClientboolean
false
redirectUris[]string
false
serviceAccountsEnabledboolean
false
standardFlowEnabledboolean
false
surrogateAuthRequiredboolean
false

LHKeycloakClient.spec.client.clientSecret

↩ Parent

Customize the clientSecret. Keycloak will create a secret if empty

NameTypeDescriptionRequired
labelsmap[string]string

Optional additional labels to apply to the generated Secret

false
namestring

Name of the generated Secret if not empty, otherwise it will take the name of the LHKeycloakClient

false
secretKeyRefobject

External secret to extract the clientSecret from. Keycloak will create a secret if empty

false

LHKeycloakClient.spec.client.clientSecret.secretKeyRef

↩ Parent

External secret to extract the clientSecret from. Keycloak will create a secret if empty

NameTypeDescriptionRequired
keystring

The key of the data

true
namestring

The name of the Secret

true

LHKeycloakClient.spec.client.protocolMappers[index]

↩ Parent
NameTypeDescriptionRequired
namestring
true
protocolMapperstring
true
configmap[string]string
false
protocolstring
false

LHKeycloakClient.spec.realm

↩ Parent
NameTypeDescriptionRequired
lhKeycloakRealmRefobject
true

LHKeycloakClient.spec.realm.lhKeycloakRealmRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHKeycloakClient.status

↩ Parent
NameTypeDescriptionRequired
clientIdstring

Client ID. Used for OAuth authentication

false
conditions[]object
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false
realmNamestring
false
statusstring

Current client state. Enabled: the client was created and is enabled. Disabled: the client was created and is disabled.

false

LHKeycloakClient.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHKeycloakOIDCProvider

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHKeycloakOIDCProvidertrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHKeycloakOIDCProvider.spec

↩ Parent
NameTypeDescriptionRequired
aliasstring

The alias uniquely identifies an identity provider and it is also used to build the redirect uri

true
authorizationUrlstring

URL of the OpenID Provider's OAuth 2.0 Authorization Endpoint. This URL MUST use the https scheme and MAY contain port, path, and query parameter components.

true
credentialsobject

Configuration of the ClientId and ClientSecret for the OAuth client

true
realmobject

Realm this Identity Provider belongs to

true
tokenUrlstring

URL of the OpenID Provider's OAuth 2.0 Token Endpoint. This URL MUST use the https scheme and MAY contain port, path, and query parameter components.

true
clientAuthMethodenum

The client authentication method. Only client_secret_basic and client_secret_post are supported


Enum: client_secret_basic, client_secret_post
Default: client_secret_post

false
displayNamestring

The name to be displayed on the frontend for this identity provider

false
enabledboolean

If true, this identity provider will be turned on


Default: true

false
hideOnLoginboolean

If hidden, login with this provider is possible only if requested explicitly, for example using the 'kc_idp_hint' parameter.


Default: false

false
issuerstring

URL using the https scheme with no query or fragment components that the OpenID Provider's asserts as its Issuer Identifier.

false
jwksUrlstring

URL of the OpenID Provider's JWK Set document. If validateSignature is true, then this property is required

false
linkOnlyboolean

If true, users cannot log in through this provider. They can only link to this provider. This is useful if you don't want to allow login from the provider, but want to integrate with a provider


Default: false

false
logoutUrlstring

URL of the OpenID Provider's endpoint/page for ending the session.

false
storeTokenboolean

Enable/disable if tokens must be stored after authenticating users.


Default: false

false
syncModeenum

Default sync mode for all mappers. The sync mode determines when user data will be synced using the mappers. Possible values are: 'legacy' to keep the behaviour before this option was introduced, 'import' to only import the user once during first login of the user with this identity provider, 'force' to always update the user during every login with this identity provider.


Enum: FORCE, IMPORT, LEGACY
Default: LEGACY

false
trustEmailboolean

If enabled, email provided by this provider is not verified even if verification is enabled for the realm.


Default: false

false
userInfoUrlstring

URL of the OpenID Provider's UserInfo Endpoint. This URL MUST use the https scheme and MAY contain port, path, and query parameter components.

false
validateSignatureboolean

If true, validates the token signature using the keys from the jwksUrl


Default: false

false

LHKeycloakOIDCProvider.spec.credentials

↩ Parent

Configuration of the ClientId and ClientSecret for the OAuth client

NameTypeDescriptionRequired
secretRefobject

Reference to secret with a clientId and a clientSecret key. If those keys are not present, the deployment will fail

true

LHKeycloakOIDCProvider.spec.credentials.secretRef

↩ Parent

Reference to secret with a clientId and a clientSecret key. If those keys are not present, the deployment will fail

NameTypeDescriptionRequired
namestring
true

LHKeycloakOIDCProvider.spec.realm

↩ Parent

Realm this Identity Provider belongs to

NameTypeDescriptionRequired
lhKeycloakRealmRefobject
true

LHKeycloakOIDCProvider.spec.realm.lhKeycloakRealmRef

↩ Parent
NameTypeDescriptionRequired
namestring

LHKeycloakRealm name

true

LHKeycloakOIDCProvider.status

↩ Parent
NameTypeDescriptionRequired
aliasstring

OIDC unique alias to identify within the realm

false
conditions[]object
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false
realmNamestring
false
statusstring

Current identity provider state. Enabled: the identity provider was created and is enabled. Disable: the identity provider was created and is disabled.

false

LHKeycloakOIDCProvider.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHKeycloakRealm

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHKeycloakRealmtrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHKeycloakRealm.spec

↩ Parent
NameTypeDescriptionRequired
keycloakobject
true
realmobject
true

LHKeycloakRealm.spec.keycloak

↩ Parent
NameTypeDescriptionRequired
lhKeycloakRefobject
true

LHKeycloakRealm.spec.keycloak.lhKeycloakRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHKeycloakRealm.spec.realm

↩ Parent
NameTypeDescriptionRequired
namestring
true
accessTokenLifespaninteger
false
bruteForceProtectedboolean
false
displayNamestring
false
duplicateEmailsAllowedboolean
false
editUsernameAllowedboolean
false
enabledboolean
false
loginThemestring
false
loginWithEmailAllowedboolean
false
registrationAllowedboolean
false
resetPasswordAllowedboolean
false
sslRequiredstring
false
ssoSessionIdleTimeoutinteger
false
ssoSessionMaxLifespaninteger
false

LHKeycloakRealm.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false
realmNamestring
false
statusstring

Current realm state. Enabled: the realm was created and is enabled. Disable: the realm was created and is disabled.

false

LHKeycloakRealm.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHKeycloak

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHKeycloaktrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHKeycloak.spec

↩ Parent
NameTypeDescriptionRequired
httpobject

HTTP listener configurations

true
replicasinteger

The number of Keycloak pods to deploy. A minimum of 1 is required


Minimum: 1

true
cacheobject

Cache configurations

false
databaseobject

Database configurations

false
defaultLabelsmap[string]string

Labels to place on all dependent resources of the LHKeycloak.

false
hostnameobject

Hostname configurations. More info at https://www.keycloak.org/server/hostname

false
imagestring

Image to use for Keycloak Server. If not set defaults to quay.io/keycloak/keycloak:26.2.1

false
imagePullPolicyenum

Image pull policy for Keycloak pods


Enum: Always, IfNotPresent, Never

false
operatorobject

Configurations for the operator connection with the Keycloak server

false
outgoingHttpobject

Configuring outgoing HTTP requests. More info at https://www.keycloak.org/server/outgoinghttp#_client_configuration_command

false
podMonitorobject

Configuration for the PodMonitor to be deployed for this LHKeycloak

false
resourcesobject

Configures compute resources for the keycloak pods.

false

LHKeycloak.spec.http

↩ Parent

HTTP listener configurations

NameTypeDescriptionRequired
enableHttpboolean

Enables the HTTP listener. If false and tls is not provided, then an error will be thrown


Default: false

false
infrastructureobject
false
tlsobject

Certificate to encrypt/decrypt the network traffic. The secret should contain tls.crt and tls.key keys. Enables HTTPS listener.

false

LHKeycloak.spec.http.infrastructure

↩ Parent
NameTypeDescriptionRequired
tlsRouteobject

Specifies to create TLSRoute according to the Gateway API. Requires a listener with the 'Passthrough' TLS mode enabled.

false

LHKeycloak.spec.http.infrastructure.tlsRoute

↩ Parent

Specifies to create TLSRoute according to the Gateway API. Requires a listener with the 'Passthrough' TLS mode enabled.

NameTypeDescriptionRequired
gatewayRefobject

Specifies the Gateway to create routes for.

true
hostnamestring

The host to be added to the TLSRoute hostnames

true
annotationsmap[string]string

Optional additional annotations to apply to the generated TLSRoute.

false
labelsmap[string]string

Optional additional labels to apply to the generated TLSRoute.

false

LHKeycloak.spec.http.infrastructure.tlsRoute.gatewayRef

↩ Parent

Specifies the Gateway to create routes for.

NameTypeDescriptionRequired
namestring

The name of the Gateway.

true
sectionNamestring

The sectionName, usually a port name, of the referenced Gateway to attach to.

true
namespacestring

The namespace of the Gateway to attach to. Defaults to current namespace.

false

LHKeycloak.spec.http.tls

↩ Parent

Certificate to encrypt/decrypt the network traffic. The secret should contain tls.crt and tls.key keys. Enables HTTPS listener.

NameTypeDescriptionRequired
secretRefobject
true

LHKeycloak.spec.http.tls.secretRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHKeycloak.spec.cache

↩ Parent

Cache configurations

NameTypeDescriptionRequired
encryptionEnabledboolean

Automatically generates certs and the appropriate configuration for encrypting internal cache communication when type is ispn. LHO_CERTMANAGER_ENABLED should be set to true for this feature to work

true
typeenum

Defines the cache mechanism, either ispn or local. Defaults to ispn


Enum: ispn, local

false

LHKeycloak.spec.database

↩ Parent

Database configurations

NameTypeDescriptionRequired
externalRefobject
false

LHKeycloak.spec.database.externalRef

↩ Parent
NameTypeDescriptionRequired
credentialsobject
true
databasestring

Sets the database name of the default JDBC URL of the chosen vendor.

true
hoststring

Sets the hostname of the default JDBC URL of the chosen vendor.

true
caCertobject

CA cert to encrypt/decrypt the communication between keycloak and the database. The secret should contain a ca.crt key. Should be set if the database is using a cert not signed by a well-known CA. The certificate will be placed in the /tls/database/ca.crt absolute path. It will also be loaded into the default JVM truststore. If the JDBC driver doesn't support the default JVM certs then you will need to specify the cert path in the properties

false
portinteger

Sets the port of the default JDBC URL of the chosen vendor. Defaults to 5432


Default: 5432

false
propertiesstring

Sets the properties of the default JDBC URL of the chosen vendor. Make sure to set the properties accordingly to the format expected by the database vendor, as well as appending the right character at the beginning of this property value. e.g. "?sslmode=verify-full&sslrootcert=/customCA/database/ca.crt"

false
vendorenum

The database vendor. Accepted Values: dev-file, dev-mem, mariadb, mssql, mysql, oracle, and postgres. Defaults to dev-file


Enum: dev-file, dev-mem, mariadb, mssql, mysql, oracle, postgres

false

LHKeycloak.spec.database.externalRef.credentials

↩ Parent
NameTypeDescriptionRequired
secretRefobject

Reference to secret of type kubernetes.io/basic-auth with username and password keys

true

LHKeycloak.spec.database.externalRef.credentials.secretRef

↩ Parent

Reference to secret of type kubernetes.io/basic-auth with username and password keys

NameTypeDescriptionRequired
namestring
true

LHKeycloak.spec.database.externalRef.caCert

↩ Parent

CA cert to encrypt/decrypt the communication between keycloak and the database. The secret should contain a ca.crt key. Should be set if the database is using a cert not signed by a well-known CA. The certificate will be placed in the /tls/database/ca.crt absolute path. It will also be loaded into the default JVM truststore. If the JDBC driver doesn't support the default JVM certs then you will need to specify the cert path in the properties

NameTypeDescriptionRequired
secretRefobject
true

LHKeycloak.spec.database.externalRef.caCert.secretRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHKeycloak.spec.hostname

↩ Parent

Hostname configurations. More info at https://www.keycloak.org/server/hostname

NameTypeDescriptionRequired
adminstring

The hostname for accessing the administration console.

false
enableBackchannelDynamicboolean

Enables dynamic resolving of backchannel URLs, including hostname, scheme, port and context path. Set to true if your application accesses Keycloak via a private network. Defaults to false


Default: false

false
enableDebugboolean

Enables the hostname debug page that is accessible at /realms/master/hostname-debug. Defaults to false


Default: false

false
enableStrictboolean

Enables dynamically resolving the hostname from request headers. Defaults to true


Default: true

false
hostnamestring

Hostname for the Keycloak server

false

LHKeycloak.spec.operator

↩ Parent

Configurations for the operator connection with the Keycloak server

NameTypeDescriptionRequired
caCertobject

CA cert to encrypt/decrypt the communication within the keycloak service and the operator. Should be set if the Keycloak server is using a cert not signed by a well-known CA. The secret should contain a ca.crt key

false
keycloakUrlstring

URL for the operator to connect with Keycloak. Should be set if the operator is not able to reach the Keycloak server through the internal kubernetes URL. Defaults to https://lhkeycloak-name-service.namespace.svc.cluster.local:8443

false

LHKeycloak.spec.operator.caCert

↩ Parent

CA cert to encrypt/decrypt the communication within the keycloak service and the operator. Should be set if the Keycloak server is using a cert not signed by a well-known CA. The secret should contain a ca.crt key

NameTypeDescriptionRequired
secretRefobject
true

LHKeycloak.spec.operator.caCert.secretRef

↩ Parent
NameTypeDescriptionRequired
namestring
true

LHKeycloak.spec.outgoingHttp

↩ Parent

Configuring outgoing HTTP requests. More info at https://www.keycloak.org/server/outgoinghttp#_client_configuration_command

NameTypeDescriptionRequired
disableTrustManagerboolean

If an outgoing request requires HTTPS and this configuration option is set to true, you do not have to specify a truststore. This setting should be used only during development and never in production because it will disable verification of SSL certificates. Default: false.


Default: false

false

LHKeycloak.spec.podMonitor

↩ Parent

Configuration for the PodMonitor to be deployed for this LHKeycloak

NameTypeDescriptionRequired
labelsmap[string]string

Labels to add to the generated PodMonitor resources

false
metricRelabelings[]object

Relabelings for the metrics exposed by the keycloak

false

LHKeycloak.spec.podMonitor.metricRelabelings[index]

↩ Parent
NameTypeDescriptionRequired
actionstring
false
modulusinteger
false
regexstring
false
replacementstring
false
separatorstring
false
sourceLabels[]string
false
targetLabelstring
false

LHKeycloak.spec.resources

↩ Parent

Configures compute resources for the keycloak pods.

NameTypeDescriptionRequired
claims[]object
false
limitsmap[string]int or string
false
requestsmap[string]int or string
false

LHKeycloak.spec.resources.claims[index]

↩ Parent
NameTypeDescriptionRequired
namestring
false
requeststring
false

LHKeycloak.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
connectionHashstring
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false

LHKeycloak.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHOperator

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHOperatortrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHOperator.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false
reconciledBy[]string
false

LHOperator.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHPrincipal

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHPrincipaltrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHPrincipal.spec

↩ Parent
NameTypeDescriptionRequired
lhClusterobject

Specifies the LittleHorse Cluster

true
globalACLs[]object

Global ACL's to add to the Principal to be created in the LH Server. These permissions apply to all Tenants inside the LH Server.

false
perTenantACLs[]object

Allows assigning permissions to the Principal to access specific Tenants inside the LH Server.

false
principalNamestring

The name of the Principal to be created in the LH Server. If null, uses the LHPrincipal name.

false

LHPrincipal.spec.lhCluster

↩ Parent

Specifies the LittleHorse Cluster

NameTypeDescriptionRequired
lhClusterRefobject

Specifies a LittleHorse Cluster managed by the same Operator

true

LHPrincipal.spec.lhCluster.lhClusterRef

↩ Parent

Specifies a LittleHorse Cluster managed by the same Operator

NameTypeDescriptionRequired
namestring

Specifies a the name of the LittleHorse Cluster

true

LHPrincipal.spec.globalACLs[index]

↩ Parent
NameTypeDescriptionRequired
actions[]string
false
resourcestring
false

LHPrincipal.spec.perTenantACLs[index]

↩ Parent
NameTypeDescriptionRequired
acls[]object
false
tenantstring
false

LHPrincipal.spec.perTenantACLs[index].acls[index]

↩ Parent
NameTypeDescriptionRequired
actions[]string
false
resourcestring
false

LHPrincipal.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
isCreatedboolean

DEPRECATED. Please check the for an Available condition instead. Whether the Principal has been created in the LH Server

false
lhClusterstring

The LHCluster that the Principal belongs to

false
observedGenerationinteger
false
principalIdstring

The ID of the created Principal in the LHCluster.

false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false

LHPrincipal.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false

LHTenant

↩ Parent
NameTypeDescriptionRequired
apiVersionstringlittlehorse.io/v1true
kindstringLHTenanttrue
metadataobjectRefer to the Kubernetes API documentation for the fields of the metadata field.true
specobject
false
statusobject
false

LHTenant.spec

↩ Parent
NameTypeDescriptionRequired
lhClusterobject

Specifies the LittleHorse Cluster

true
tenantNamestring

Name of the Tenant in LittleHorse. If not provided, inferred from LHTenant name.

false

LHTenant.spec.lhCluster

↩ Parent

Specifies the LittleHorse Cluster

NameTypeDescriptionRequired
lhClusterRefobject

Specifies a LittleHorse Cluster managed by the same Operator

true

LHTenant.spec.lhCluster.lhClusterRef

↩ Parent

Specifies a LittleHorse Cluster managed by the same Operator

NameTypeDescriptionRequired
namestring

Specifies a the name of the LittleHorse Cluster

true

LHTenant.status

↩ Parent
NameTypeDescriptionRequired
conditions[]object
false
isCreatedboolean

DEPRECATED. Please check for a Available condition instead. Whether the Tenant has been successfully created in the LH Cluster

false
lhClusterstring

The LHCluster that the Tenant belongs to

false
observedGenerationinteger
false
problemsstring

DEPRECATED. Please check for a ReconciliationError condition instead.

false
tenantIdstring

The ID of the created Tenant in the LHCluster.

false

LHTenant.status.conditions[index]

↩ Parent
NameTypeDescriptionRequired
lastTransitionTimestring

The last time the condition transitioned from one status to another. The required format is ISO 8601 'yyyy-MM-ddTHH:mm:ssZ'

true
reasonstring

Reason contains a programmatic identifier indicating the reason for the condition's last transition.

true
statusenum

Status of the condition, one of True, False, Unknown.


Enum: False, True, Unknown

true
typestring

Type of condition

true
messagestring

A human readable message indicating details about the transition.

false