Skip to content

Sizing

The numbers on this page are the defaults in the chart’s values.yaml. They are starting points for your own measurements, not figures measured for a number of people: how much an installation needs depends on how many people use it at once, how many tool servers they run, and what they do. Watch what the pods use under Administration → Platform or in your monitoring, and adjust.

Component Replicas Autoscaling (CPU 70 %) Requests Limits
Control API 2 2 to 6 100m CPU, 256Mi 1 CPU, 512Mi
MCP gateway 2 2 to 10 100m CPU, 256Mi 1 CPU, 512Mi
Egress gateway 2 2 to 10 100m CPU, 128Mi 1 CPU, 512Mi
Controller 2 (one leads) – 50m CPU, 128Mi 500m CPU, 256Mi
Console 2 – 50m CPU, 128Mi 500m CPU, 256Mi
Classifier (off) 1 – 2 CPU, 6Gi 4 CPU, 8Gi

With autoscaling on, the autoscaler sets the number of replicas and replicas is not used; it needs a metrics server.

Service Replicas Requests Limits Other defaults
Postgres (CloudNativePG) 2 instances the operator’s the operator’s postgres.storage: 10Gi each
Garage 1 node 50m CPU, 128Mi 1 CPU, 1Gi volumes meta 1Gi, data 20Gi
SearXNG 1 50m CPU, 256Mi 1 CPU, 512Mi
Docling 1 1 CPU, 2Gi 4 CPU, 8Gi 2 workers, 4 threads each; scratch 2Gi
Gotenberg (off) 1 100m CPU, 256Mi 2 CPU, 2Gi queue 8; scratch 1Gi
Presidio (off) 1 100m CPU, 768Mi 1 CPU, 1536Mi starts in up to 6 minutes

The chart’s README notes for Docling that OCR with EasyOCR on scanned pages took up to 6 GiB; each further set of options kept loaded (optionsCacheSize) takes about 1 to 2 GiB more.

These run outside the platform namespace and are bounded by counts and quotas, not by replicas:

What At once Each requests Each at most
Build jobs (builds) 2 per person, 8 in all 500m CPU, 1Gi 2 CPU, 4Gi; 15 minutes
Check steps of a build (checks.resources) one per build 100m CPU, 128Mi 1 CPU, 1Gi; 3 minutes per tool
Code sandboxes (sandboxes, off) 2 per person, 20 in all, 2 kept warm 100m CPU, 256Mi 1 CPU, 2Gi; disk 2Gi; a run 120 s
Code environments (devenvs, off) 2 per person, 10 in all 250m CPU, 512Mi, 1Gi disk 2 CPU, 4Gi, 12Gi disk

People’s tool servers run in a namespace per person, on instances.quota: 4 CPU, 8Gi memory, 20 pods, 5 volumes. An organisation’s namespace holds every copy its people share, one per version and set of sign-ins, and uses instances.orgQuota, by default the same as a person’s. The chart’s README suggests giving organisations more, for example:

instances:
orgQuota: { cpu: "16", memory: 32Gi, pods: "100" }

An idle instance goes to sleep after 15 minutes (setting instances.idleTimeout) and frees what it used until the next call.

Grows with Where What to watch
People working at the same time Control API, MCP gateway CPU of these pods; the autoscalers’ maxima.
Tool calls to the outside Egress gateway CPU, and memory for API rules: egress.apiBodyBudget (64 MiB) bounds the request bodies one replica holds while it checks them.
People and organisations with their own tool servers Their namespaces The nodes’ room for instances.quota per namespace; the organisation’s quota.
Building tool servers Build namespace 8 build jobs at most, each up to 2 CPU and 4Gi.
Chats, memories, wiki pages, sessions, the audit log Postgres postgres.storage. Vectors for memory search are in Postgres too (pgvector).
Code bundles of tool servers Postgres Each up to bundles.maxSize (256Mi), every version kept.
Files Garage or S3 data 20Gi by default. Files go after 7 days unless kept, a person may keep up to 5 GB (settings); objects no file names any more stay storage.graceDays (90 days).
Documents read Docling Memory per worker, more with OCR; workers.
  • Postgres: postgres.instances: 2 gives a primary and a replica. CloudNativePG fails over between them.
  • Garage: one node keeps every object once. storage.garage.ha.enabled: true runs at least three nodes, each object on three of them, never two on one Kubernetes node. A one-node Garage cannot simply become several later: start an HA one and copy the bucket over.
  • The components run with two replicas each by default.