activator | object | no | | Wake activator deployment and runtime policy. |
activator.clientDispatchQueueCapacity | integer | no | | Kafka client request-dispatch queue capacity. |
activator.clientFrameMax | string | no | | Maximum accepted Kafka client frame size. |
activator.coldStartTimeout | string | no | | Maximum duration to hold one cold-starting connection. |
activator.image | string | no | | Container image override. When absent, the operator uses its global activator image override or its compiled default. |
activator.readinessProbePeriodSeconds | integer | no | | Activator readiness probe period in seconds. |
activator.registryPoll | string | no | | Registry readiness polling interval. |
activator.replicas | integer | no | | Number of activator replicas. |
balancer | object | no | | Dry-run Gres balancer planning knobs. The operator does not yet do live execution, and this is on purpose. |
balancer.enabled | boolean | no | true | Enable dry-run planning status for this fleet. |
balancer.goals | object | no | {"disabledGoals":[]} | Per-goal enablement knobs. |
balancer.goals.disabledGoals | array | no | [] | Goals disabled for dry-run planning. Omit a goal to leave it enabled. |
balancer.planSnapshot | object | no | | Optional dry-run plan snapshot supplied to the operator for status reporting. The operator never executes these operations. |
balancer.planSnapshot.operations | array | yes | | Operations emitted by the planner for the observed registry snapshot. |
balancer.registryLayout | object | no | {"transactionalRegistryProtocol":false} | Explicit capability declaration for Kafka's transactional registry protocol. This protocol does not make any physical Move, Split, or Merge operation executable. The operator reports plans only. |
balancer.registryLayout.transactionalRegistryProtocol | boolean | no | false | Kafka transactional registry protocol is configured and available for metadata transactions only. Physical range operations remain unavailable. |
balancer.thresholds | object | no | {"cooldownEpochs":2,"loadSkewHysteresis":"25%","maxOperations":32,"mergeFloor":"64MiB","sizeCeiling":"1GiB","splitStrideRows":1000000} | Threshold and cooldown knobs used by future live planner input. |
balancer.thresholds.cooldownEpochs | integer | yes | | Epoch count that suppresses repeated operation kinds. |
balancer.thresholds.loadSkewHysteresis | string | yes | | Load skew tolerated before move planning. |
balancer.thresholds.maxOperations | integer | yes | | Maximum operations in one dry-run plan. |
balancer.thresholds.maxRangesPerCompute | integer | no | | Optional maximum ranges per compute. |
balancer.thresholds.mergeFloor | string | yes | | Merge adjacent ranges below this combined size. |
balancer.thresholds.sizeCeiling | string | yes | | Split ranges larger than this size. |
balancer.thresholds.splitStrideRows | integer | yes | | Row stride used when a range has no upper bound. |
compute | object | no | | Tenant compute workload policy. |
compute.checkpointDeleteRecordsTimeout | string | no | | Kafka DeleteRecords timeout. |
compute.checkpointPartSize | string | no | | Maximum checkpoint object part size. |
compute.checkpointPollInterval | string | no | | Checkpoint threshold polling interval. |
compute.checkpointRetain | integer | no | | Number of checkpoint manifests to retain. |
compute.clientDispatchQueueCapacity | integer | no | | Kafka client request-dispatch queue capacity. |
compute.clientFrameMax | string | no | | Maximum accepted Kafka client frame size. |
compute.durableInspectionFoldMaxRecords | integer | no | | Maximum records materialized by one durable inspection. |
compute.durableInspectionFoldMaxSize | string | no | | Maximum data materialized by one durable inspection. |
compute.durableInspectionTimeout | string | no | | Deadline for one durable record inspection. |
compute.fdwBrokerDnsTimeout | string | no | | Timeout for resolving Kafka broker hostnames used by the FDW. |
compute.fdwConnectTimeout | string | no | | FDW broker TCP connection timeout. |
compute.fdwFetchMaxWait | string | no | | Maximum time a broker may hold one FDW fetch. |
compute.fdwFetchMin | string | no | | Minimum response size for FDW Kafka fetches. |
compute.fdwFetchPartitionMax | string | no | | Maximum bytes returned for one FDW partition fetch. |
compute.fdwRequestTimeout | string | no | | FDW broker request timeout. |
compute.fdwSchemaFetchPoll | string | no | | Poll cadence while awaiting a cold FDW writer schema. |
compute.fdwSchemaFetchTimeout | string | no | | Total deadline for resolving a cold FDW writer schema. |
compute.idleSuspendPollInterval | string | no | | Idle-suspend polling interval. |
compute.lifecycleRequeue | string | no | | Tenant lifecycle reconciliation interval. |
compute.pgexecBlockingQueryMemory | string | no | | Memory retained by one blocking query operator. |
compute.pgexecJoinBroadcastThreshold | string | no | | Largest estimated join input eligible for broadcast. |
compute.pgexecNotifyQueueCapacity | integer | no | | Per-session LISTEN/NOTIFY queue capacity. |
compute.pgexecResultPageMax | string | no | | Maximum encoded size of one result page. |
compute.pgexecRowidReservation | integer | no | | Durable internal row-ID reservation size. |
compute.pgexecTsGcFloorLag | string | no | | Lag retained behind the timestamp GC floor. |
compute.pgexecTsPruneVersionsPerRow | integer | no | | Maximum timestamp versions pruned per written row. |
compute.pgexecXidReservation | integer | no | | Durable XID reservation size. |
compute.pgkvMaxMemtableSize | string | no | | Maximum active memtable size for each on-disk substrate cache. |
compute.pgkvRotateAfterOps | integer | no | | Committed operations between requested substrate-cache memtable rotations. |
compute.pgwireMaxMessageSize | string | no | | Maximum accepted PostgreSQL frontend message size. |
compute.range0BarrierReplyBudget | string | no | | Whole-reply budget for range-0 barriers. |
compute.range0FollowerPollInterval | string | no | | Periodic range-0 follower refresh cadence. |
compute.range0FollowerRebuildBackoffCeiling | string | no | | Maximum delay between consecutive range-0 follower rebuilds. |
compute.range0FollowerRebuildBackoffFloor | string | no | | Initial delay before retrying consecutive range-0 follower rebuilds. |
compute.range0WaitTimeout | string | no | | Range-0 catch-up wait timeout. |
compute.rangeCrossRangeLockWaitCap | string | no | | Lock-wait cap for cross-range transactions. |
compute.rangeDecisionReleaseLagRetries | integer | no | | Decision-release lag retry count. |
compute.rangeDecisionReleaseRetryBackoff | string | no | | Decision-release retry backoff. |
compute.rangeDurableInspectMaxRecords | integer | no | | Durable range-inspection record ceiling. |
compute.rangeDurableInspectMaxSize | string | no | | Durable range-inspection byte ceiling. |
compute.rangeHlcHorizonHeadroom | string | no | | Wall-clock headroom persisted by the HLC oracle. |
compute.rangeJoinBroadcastRows | integer | no | | Maximum materialized broadcast rows. |
compute.rangeJoinKeyColumns | integer | no | | Maximum distributed join key columns. |
compute.rangeJoinPredicates | integer | no | | Maximum predicates per distributed join side. |
compute.rangeJoinProjectionColumns | integer | no | | Maximum distributed join projection columns. |
compute.rangeJoinResultRows | integer | no | | Maximum distributed join result rows. |
compute.rangeJoinRowMax | string | no | | Maximum encoded distributed join row size. |
compute.rangeJoinSnapshotXids | integer | no | | Maximum active XIDs in each distributed join snapshot. |
compute.rangeLogicalBasePersistStride | integer | no | | Initial logical horizon persistence stride. |
compute.rangeLogicalMaxPersistStride | integer | no | | Maximum adaptive logical horizon persistence stride. |
compute.rangeLogicalMinPersistInterval | string | no | | Minimum interval between logical horizon persists. |
compute.rangeRemoteSessionIdle | string | no | | Hosted remote-session idle retention. |
compute.rangeRemoteSessionMax | integer | no | | Maximum hosted remote sessions. |
compute.rangeRpcFrameMax | string | no | | Maximum encoded range RPC frame size. |
compute.rangeRpcPoolIdleTtl | string | no | | Range RPC client-pool idle connection lifetime. |
compute.rangeRpcPoolMaxIdlePerEndpoint | integer | no | | Maximum idle range RPC connections retained per endpoint. |
compute.rangeRpcRequestTimeout | string | no | | Deadline for one range RPC request. |
compute.rangeRpcServerIdleTimeout | string | no | | Range RPC server connection idle timeout. |
compute.rangeTsoHeartbeatInterval | string | no | | Timestamp-oracle heartbeat cadence. |
compute.readinessProbePeriodSeconds | integer | no | | Compute readiness probe period in seconds. |
compute.schemaFetchRetryInitialBackoff | string | no | | Initial delay before retrying a transient Schema Registry fetch failure. |
compute.schemaFetchRetryMaxBackoff | string | no | | Maximum delay between transient Schema Registry fetch retries. |
compute.walAdminConnectTimeout | string | no | | Timeout for opening WAL admin connections. |
compute.walAdminRequestTimeout | string | no | | Timeout for WAL admin requests. |
compute.walFrameMaxSize | string | no | | Target maximum size of one encoded logical WAL frame. |
compute.walProducerBatch | string | no | | Maximum WAL producer batch size. |
compute.walProducerCompression | string | no | | WAL producer compression codec. |
compute.walProducerDnsTimeout | string | no | | Timeout for resolving WAL producer broker hostnames. |
compute.walProducerFlushTimeout | string | no | | Deadline for flushing all buffered and in-flight WAL records. |
compute.walProducerInitMaxBackoff | string | no | | WAL producer-ID initialization backoff cap. |
compute.walProducerInitRetryTimeout | string | no | | WAL producer-ID initialization retry timeout. |
compute.walProducerLinger | string | no | | Delay before sending a partial WAL producer batch. |
compute.walProducerRequestTimeout | string | no | | Timeout for WAL producer broker requests. |
compute.walProducerRetries | integer | no | | WAL producer retries after the initial batch send. |
compute.walProducerRetryBackoff | string | no | | WAL producer retry and producer-ID initial backoff. |
compute.walProducerRoutingRetryBudget | string | no | | Per-batch WAL producer routing retry budget. |
compute.walProducerTransactionTimeout | string | no | | WAL producer transaction timeout. |
compute.walRecoveryConnectTimeout | string | no | | Timeout for opening committed-WAL recovery broker connections. |
compute.walRecoveryDnsTimeout | string | no | | Timeout for resolving committed-WAL recovery broker hostnames. |
compute.walRecoveryEmptyFetchRetries | integer | no | | Consecutive empty-fetch retries after the first empty recovery fetch. |
compute.walRecoveryFetchMaxWait | string | no | | Kafka broker long-poll wait for committed-WAL recovery fetches. |
compute.walRecoveryFetchMin | string | no | | Minimum response size for committed-WAL recovery fetches. |
compute.walRecoveryFetchPartitionMax | string | no | | Per-partition size limit for committed-WAL recovery fetches. |
compute.walRecoveryFetchResponseMax | string | no | | Whole-response size limit for committed-WAL recovery fetches. |
compute.walRecoveryRequestTimeout | string | no | | Timeout for committed-WAL recovery broker requests. |
compute.walTopicEnsureTimeout | string | no | | Timeout for ensuring a range WAL topic. |
compute.walTopicReplicationFactor | integer | no | | Replication factor requested when creating a range WAL topic. |
defaults | object | no | | Default tenant runtime settings. Each GresTenant inherits them unless it sets spec.overrides. |
defaults.checkpointFrames | integer | no | | Checkpoint after this many frames when set. |
defaults.checkpointSize | string | no | | Checkpoint after this much WAL when set. |
defaults.idleSeconds | integer | no | | Idle timeout in seconds. When unset, the tenant never suspends because it is idle. |
defaults.scramIterations | integer | no | | PBKDF2 iteration count for tenant Kafka and PostgreSQL SCRAM credentials. |
defaults.suspendMaxCheckpointSize | string | no | | Keep the tenant warm when its latest checkpoint exceeds this size. |
defaults.walReplication | integer | no | | Replication factor for tenant WAL topics. |
kafkaCluster | string | yes | | Kafka cluster name this Gres fleet targets. |
pgdog | object | yes | | PgDog front-door deployment settings. |
pgdog.adminSecretRef | object | yes | | Secret key reference for PgDog admin credentials. |
pgdog.adminSecretRef.key | string | yes | | Secret data key. |
pgdog.adminSecretRef.name | string | yes | | Secret name. |
pgdog.connectAttempts | integer | no | | Number of backend connection attempts. |
pgdog.directBootstrapGrace | string | no | | Direct-route credential retention grace. |
pgdog.idleTimeout | string | no | | Idle pooled-server disconnect window. |
pgdog.image | string | no | | Container image override. When absent, the operator uses --default-pgdog-image. |
pgdog.listenPort | integer | yes | | PgDog client listen port. |
pgdog.poolerMode | string | no | | Pooling modes accepted by the Gres CRD. |
pgdog.readinessProbePeriodSeconds | integer | no | | PgDog readiness probe period in seconds. |
pgdog.replicas | integer | yes | | Number of PgDog replicas. |
pgdog.serverLifetime | string | no | | Maximum lifetime for pooled backend connections. |
pgdog.suspensionIdleTimeout | string | no | | Idle timeout used while at least one tenant can suspend. |
pgdog.tlsSecretRef | object | no | | Optional TLS Secret mounted by the future PgDog controller. |
pgdog.tlsSecretRef.name | string | yes | | Secret name. |
tracing | object | no | | Distributed-tracing wiring for this fleet's tenant compute pods. When this field is set, the GresTenant reconciler renders the CRABKA_OTLP_* and OTEL_SERVICE_NAME env contract on every compute container, and crabka-gres installs the OTLP exporter at startup. When the field is absent, the reconciler writes no OTLP env var at all. That is what keeps tracing off. An empty endpoint would still switch the exporter on, and the exporter would then fail to reach a collector. This field uses the schema of Kafka.spec.tracing. The two fleets therefore have one shape, one validation path, and the field names that an operator already knows. The field is fleet-scoped and not per-GresTenant, and this is on purpose. The collector endpoint, the protocol, and the export timeout are cluster infrastructure. A tenant-writable copy would make telemetry routing a tenant decision. |
tracing.otlp | object | no | | OTLP-backend tuning. Required when kind == Otlp. |
tracing.otlp.endpoint | string | yes | | Required. OTLP collector endpoint in the form scheme://host:port. The operator renders it as CRABKA_OTLP_ENDPOINT. A set field also sets CRABKA_OTLP_ENABLED=true. |
tracing.otlp.protocol | string | no | | OTLP wire protocol selector. It has the same shape as the broker's internal OtlpProtocol enum and the OTEL_EXPORTER_OTLP_PROTOCOL spec values. |
tracing.otlp.sampleRatio | number | no | | Optional sampling ratio in [0.0, 1.0]. The operator renders it as CRABKA_OTLP_SAMPLE_RATIO. An unset field leaves the binary's own default of 1.0, which samples every trace. |
tracing.otlp.serviceName | string | no | | Optional service.name resource attribute. The operator renders it as OTEL_SERVICE_NAME. An unset field leaves the binary's own name, which is "crabka-broker" for Kafka and "crabka-gres" for Gres. |
tracing.otlp.timeout | string | no | | Optional export timeout. The operator renders it as CRABKA_OTLP_TIMEOUT. An unset field leaves the binary's own default of 10s. |
tracing.type | string | yes | | Tracing backend selector. |