Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.kaireonai.com/llms.txt

Use this file to discover all available pages before exploring further.

Usage

helm upgrade --install kaireon ./helm \
  -f helm/values.yaml \
  -f helm/values-large.yaml
The overlay layers on top of the canonical values.yaml. Anything not listed in values-large.yaml inherits from the canonical file.

Tier layout

TierReplicasResourcesNotes
api6 → 50 (HPA)4 GiB / 2 CPU req → 8 GiB / 4 CPU limDedicated kaireon.ai/tier=api node group + zone-strict topology spread.
cron6 CronJobs (W8.2)64 MiB / 100 mCPU reqIndependent schedules; concurrencyPolicy: Forbid.
worker4 → 30 (KEDA)4 GiB / 2 CPU req → 8 GiB / 4 CPU limBullMQ batch jobs.
mlWorker2 → 108 GiB / 2 CPU req → 16 GiB / 8 CPU limLightGBM training; CPU-only by default.
outboxPublisher3 + PDB minAvailable: 2512 MiB / 200 mCPU reqFaster poll (1s) for low publish-tail latency.
stream (optional)22 GiB / 1 CPU reqActivate with FLOW_STREAMING_ENABLED=true AND a real broker.
mcp (optional)21 GiB / 500 mCPU reqActivate with mcp.dedicated: true to isolate LLM-driven MCP traffic.

Datastore expectations

  • postgres.mode: external — pin to managed RDS / Aurora / Supabase.
  • redis.mode: external + redis.cluster: true — single-node Redis is the wrong shape at this scale.
  • opensearch.enabled: true — ts-vector tsearch is fine for small fleets but caps out under sustained search load.
  • eventbus.backend: kafka (or kinesis / pulsar).
  • interactionStore.backend: dynamodb — partition-by-customerId scales horizontally without table-bloat pain.

Large-overlay-only keys

The base chart at helm/values.yaml does not define the keys below — they exist only inside the overlay and are consumed by the chart templates as high-level aliases over the per-backend blocks (kafka.*, dynamodb.*, etc.) that the base chart already documents in Helm Chart Reference.

postgresExternalReplicas

Defined in helm/values-large.yaml:163. A single integer that records how many PostgreSQL read replicas the operator has provisioned alongside the primary. Advisory only — the chart does not provision RDS replicas; chart consumers (the read-only analytics path) read this number when deciding whether to fan out reads.
KeyTypeDefault (large)Description
postgresExternalReplicasint2Replica count behind postgres.mode: external. Set to 0 for primary-only.

eventbus.*

Defined in helm/values-large.yaml:173-175. High-level alias that selects one of the per-backend event-bus blocks. The base chart drives the same choice from config.EVENT_PUBLISHER (redis | kafka | msk | eventbridge | kinesis); the overlay surfaces it as a single key for callers who prefer to read the topology in one place.
KeyTypeDefault (large)Description
eventbus.enabledbooltrueWhether an external event bus is in use. When false, the chart falls back to config.EVENT_PUBLISHER: redis.
eventbus.backendstringkafkaOne of kafka, kinesis, pulsar. The matching per-backend block (kafka.brokers, kinesis.streamName, etc.) must still be filled in.

interactionStore.*

Defined in helm/values-large.yaml:177-178. Alias for config.INTERACTION_STORE. Selects which backend receives the partitioned InteractionHistory writes that back the /api/v1/respond write path and the engagement-health recompute cron.
KeyTypeDefault (large)Description
interactionStore.backendstringdynamodbOne of pg, dynamodb, scylla, cassandra (mid-tier). The target store (DynamoDB table, Scylla cluster, Keyspaces keyspace) is operator-provisioned before the value is flipped.
The chart does not create the target store. Mismatches between interactionStore.backend and the per-backend block are left to the operator — the connector boots only when its block is enabled.

Honest limits

  • These numbers are design targets, not benchmarked. The perf/baselines/ directory holds real numbers as they’re measured. Run k6 against the installed cluster before committing to the topology in production.
  • mlWorker resource numbers assume CPU-only inference. GPU support is roadmap and would change the resource profile dramatically.
  • The streaming + mcp tiers are gated off by default in this overlay because both require operator-driven setup beyond the chart (broker provisioning, MCP-tool authorization).
  • postgresExternalReplicas is advisory — the chart does not create replicas, fail closed if the count is wrong, or rebalance reads when a replica is removed. Operator owns provisioning and connection-string publication.
  • eventbus.backend and interactionStore.backend only select the wire path; the actual broker / table / keyspace must already exist when the chart is applied. The chart does not create AWS or self-managed infrastructure on the operator’s behalf.