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 a single key holding newline-separated user:cred entries (cred = plaintext or $2… bcrypt). The key is mounted as a file and passed via --basic-auth-file.
authentication.bearerobjectno
authentication.bearer.jwksEndpointUristringnoJWKS endpoint URI (required when mode = Jwks).
authentication.bearer.jwksExpectedAudiencestringnoExpected aud claim value.
authentication.bearer.jwksPrincipalClaimstringnoJWT claim to use as the principal when mode is Jwks. Overrides principalClaim for JWKS paths.
authentication.bearer.jwksRefreshMsintegernoJWKS key-set refresh interval in milliseconds. Default 60 000.
authentication.bearer.jwksTlsSecretNamestringnoSecret name whose ca.crt key is mounted and passed as --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 (Kafka-ACL based).
authorization.aclRefreshSecondsintegernoACL-cache refresh interval (seconds). Default 30.
authorization.enabledbooleannofalse
authorization.superUsersarrayno
bootstrapServersstringnoOverride bootstrap for an external/unmanaged Kafka. When unset, bootstrap is derived from the crabka.io/cluster-labeled Kafka's internal listener. (Secured external brokers are a future enhancement; the managed/label path is the secured one.)
groupIdstringnoElection group id. Default schema-registry.
imagestringnoContainer image. Defaults to the operator's --default-schema-registry-image.
kafkaClientobjectnoSR → broker client security (SASL / TLS). Maps to --kafka-* flags.
kafkaClient.saslobjectnoSASL credentials for the SR → broker connection.
kafkaClient.sasl.mechanismstringyese.g. PLAIN, SCRAM-SHA-256, SCRAM-SHA-512.
kafkaClient.sasl.secretRefstringyesName of the Secret holding username and password keys.
kafkaClient.securityProtocolstringnoe.g. PLAINTEXT, SASL_PLAINTEXT, SSL, SASL_SSL.
kafkaClient.tlsobjectnoTLS settings for the SR → broker connection.
kafkaClient.tls.caSecretNamestringnoSecret with a ca.crt key used as the broker CA.
kafkaClient.tls.serverNameOverridestringnoOverride the server name used for TLS SNI / hostname verification.
replicasintegeryesStateless replicas; all 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/
schemasTopicstringnoBacking compacted topic. Default _schemas.
schemasTopicReplicationFactorintegernoReplication factor for _schemas when auto-created. Default 3.
tlsobjectnoServer TLS (HTTPS REST). None = plain HTTP.
tls.clientAuthstringnoClient-cert mode. Default Disabled.
tls.clientCaSecretNamestringnoSecret with ca.crt to verify client certs (required when clientAuth != Disabled).
tls.issuerRefobjectnocert-manager issuer reference. Mutually exclusive with secretName.
tls.issuerRef.groupstringnoAPI group. Default cert-manager.io.
tls.issuerRef.kindstringnoDefaults to Issuer; set ClusterIssuer for cluster-scoped issuers.
tls.issuerRef.namestringyes
tls.secretNamestringnoSecret (type kubernetes.io/tls) with tls.crt + tls.key. Mutually exclusive with issuerRef.

Status

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