SchemaRegistry

API group/version: crabka.io/v1alpha1

Spec

FieldTypeRequiredDefaultDescription
authenticationobjectnoREST authentication.
authentication.basicobjectno
authentication.basic.usersSecretKeystringnoSecret key holding the htpasswd-style file. Default users.
authentication.basic.usersSecretNamestringyesSecret with one key that holds user:cred entries, one on each line. The cred is plaintext or a $2… bcrypt hash. The operator mounts the key as a file and gives it in --basic-auth-file.
authentication.bearerobjectno
authentication.bearer.jwksEndpointUristringnoJWKS endpoint URI. It is necessary when mode is Jwks.
authentication.bearer.jwksExpectedAudiencestringnoExpected aud claim value.
authentication.bearer.jwksPrincipalClaimstringnoJWT claim to use as the principal when the mode is Jwks. It overrides principalClaim on the JWKS paths.
authentication.bearer.jwksRefreshstringnoJWKS key-set refresh interval. Default 1m.
authentication.bearer.jwksTlsSecretNamestringnoName of the Secret whose ca.crt key the operator mounts and gives in --bearer-jwks-ca.
authentication.bearer.jwksValidIssuerstringnoExpected iss claim value.
authentication.bearer.modestringyes
authentication.bearer.principalClaimstringnoJWT claim used as the principal name. Default sub.
authentication.realmstringnoWWW-Authenticate: basic realm="<realm>".
authentication.requireAuthbooleannofalseReject anonymous requests with 401.
authorizationobjectnoREST authorization, based on the Kafka ACLs.
authorization.aclRefreshstringnoACL-cache refresh interval. Default 30s.
authorization.enabledbooleannofalse
authorization.superUsersarrayno
bootstrapServersstringnoBootstrap override for an external Kafka that the operator does not manage. When unset, the operator derives the bootstrap from the internal listener of the Kafka with the crabka.io/cluster label. Secured external brokers are future work. The managed path with the label is the secured one.
clientIdstringnoKafka client id used by the registry. Default crabka-schema-registry.
groupIdstringnoElection group id. Default schema-registry.
healthChecksobjectnoKubernetes probe timing overrides.
healthChecks.livenessInitialDelaySecondsintegerno
healthChecks.livenessPeriodSecondsintegerno
healthChecks.readinessInitialDelaySecondsintegerno
healthChecks.readinessPeriodSecondsintegerno
imagestringnoContainer image. Defaults to the operator's --default-schema-registry-image.
kafkaClientobjectnoClient security from the SR to the broker, with SASL and TLS. It maps to the --kafka-* flags.
kafkaClient.saslobjectnoSASL credentials for the connection from the SR to the broker.
kafkaClient.sasl.mechanismstringyesFor example PLAIN, SCRAM-SHA-256, or SCRAM-SHA-512.
kafkaClient.sasl.secretRefstringyesName of the Secret that holds the username and password keys.
kafkaClient.securityProtocolstringnoFor example PLAINTEXT, SASL_PLAINTEXT, SSL, or SASL_SSL.
kafkaClient.tlsobjectnoTLS settings for the connection from the SR to the broker.
kafkaClient.tls.caSecretNamestringnoSecret with a ca.crt key that gives the broker CA.
kafkaClient.tls.serverNameOverridestringnoOverride the server name for TLS SNI and hostname verification.
replicasintegeryesNumber of stateless replicas. All of them join the election group. Default 1.
resourcesobjectnoPod resource requirements.
resources.claimsarraynoClaims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers.
resources.limitsobjectnoLimits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
resources.requestsobjectnoRequests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
runtimeobjectnoSchema Registry runtime policy.
runtime.clientDispatchQueueCapacityintegernoKafka client request-dispatch queue capacity.
runtime.clientFrameMaxstringnoMaximum accepted Kafka client frame size.
runtime.defaultCompatibilityLevelstringno
runtime.defaultModestringno
runtime.electionHeartbeatIntervalstringno
runtime.electionRebalanceTimeoutstringno
runtime.electionReconnectBackoffstringno
runtime.electionSessionTimeoutstringno
runtime.forwardMaxBodystringno
runtime.schemasTopicCreateTimeoutstringno
runtime.storeReaderFetchMaxstringno
runtime.storeReaderFetchMaxWaitstringno
runtime.storeReaderRetryBackoffstringno
schemasTopicstringnoBacking compacted topic. Default _schemas.
schemasTopicReplicationFactorintegernoReplication factor for _schemas when auto-created. Default 3.
tlsobjectnoServer TLS for the HTTPS REST surface. None means plain HTTP.
tls.clientAuthstringnoClient-cert mode. Default Disabled.
tls.clientCaSecretNamestringnoSecret with ca.crt that verifies the client certs. It is necessary when clientAuth is not Disabled.
tls.issuerRefobjectnocert-manager issuer reference. Do not set it together with secretName.
tls.issuerRef.groupstringnoAPI group. Default cert-manager.io.
tls.issuerRef.kindstringnoThe default is Issuer. Set ClusterIssuer for an issuer with cluster scope.
tls.issuerRef.namestringyes
tls.secretNamestringnoSecret of type kubernetes.io/tls with tls.crt and tls.key. Do not set it together with issuerRef.

Status

FieldTypeRequiredDefaultDescription
conditionsarrayno[]Kubernetes-style conditions: KafkaReady, Available, and Ready.
observedGenerationintegernometadata.generation of the last successfully-reconciled spec.
readyReplicasintegerno
replicasintegerno
urlstringnoIn-cluster REST URL that the clients use.