Skip to main content

Documentation Index

Fetch the complete documentation index at: https://enterprise-docs.crewai.com/llms.txt

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

Cube is the analytics engine used by CrewAI. It provides cost tracking, execution analytics, and provider usage metrics.

Prerequisites

Before enabling Cube, ensure the following:
  1. Wharf must be enabled: Wharf is enabled by default. If you disabled it with wharf.enabled: false, re-enable it for Cube to work. See Wharf OTLP Trace Collector.
  2. Object storage (recommended for production): Cubestore needs persistent storage. See Storage below.

Database

With internal PostgreSQL (postgres.enabled: true): The Helm chart automatically creates and configures the Cube database during installation. No manual steps required. With external PostgreSQL (postgres.enabled: false): You must manually create the Cube database before enabling. The database name should match cube.database (default: cube).
CREATE DATABASE cube;
GRANT ALL PRIVILEGES ON DATABASE cube TO your_db_user;
Cube requires the postgres_fdw extension. On most managed PostgreSQL services (AWS RDS, Google Cloud SQL, Azure) this extension is available by default. If your database administrator has restricted extension creation, they may need to run the following on the Cube database:
CREATE EXTENSION IF NOT EXISTS postgres_fdw;

Storage

Cube automatically detects and reuses the storage backend already configured for your installation (STORAGE_SERVICE). No additional storage configuration is needed — Cube stores its data under a cubestore/ prefix in the same bucket or container.
STORAGE_SERVICEDetected backend
amazonAWS S3
googleGoogle Cloud Storage
microsoftAzure Blob Storage
If you need to override the auto-detected backend, set cube.cubestore.storage.type explicitly to "s3", "gcs", or "azure".

Local PVC (Evaluation Only)

PVC-based storage is for evaluation and development only.In Kubernetes, PersistentVolumeClaims with ReadWriteOnce access mode are bound to a single node. If the node is rescheduled or fails, cached data is lost and must be rebuilt. For production deployments, always use object storage.
To force local PVC storage instead of auto-detection:
cube:
  enabled: true
  cubestore:
    storage:
      type: "local"
    persistence:
      enabled: true
      size: "20Gi"

Configuration

cube.enabled
boolean
default:"false"
Enable or disable Cube.Values:
  • true - Deploy Cube (enables analytics)
  • false - Disable Cube (default)
cube.database
string
default:"cube"
Database name used by the Cube service.Default: "cube"Must match: When using external PostgreSQL, the database with this name must exist and be accessible by the application user.

Image

cube.image.host
string
default:""
Container registry hosting the Cube image.Default: "" (empty) - Automatically uses global.imageRegistry value
cube.image.name
string
default:"proxy/crewai/crewai/cube"
Cube container image name.
cube.image.tag
string
default:"0.1.0"
Cube version to deploy.
cube.image.pullPolicy
string
default:"IfNotPresent"
Image pull policy.

Scaling

cube.replicaCount
integer
default:"1"
Number of Cube API replicas.

Resources

cube.resources
object
Resource limits and requests for the Cube API pod.Defaults:
resources:
  limits:
    cpu: "2"
    memory: "3Gi"
  requests:
    cpu: "500m"
    memory: "1Gi"
cube.refreshWorker.resources
object
Resource limits and requests for the background worker pod.Defaults:
refreshWorker:
  resources:
    limits:
      cpu: "2"
      memory: "6Gi"
    requests:
      cpu: "500m"
      memory: "2Gi"

Cubestore

cube.cubestore.image.tag
string
default:"v1.6.29"
Cubestore version.
cube.cubestore.storage.type
string
default:""
Storage backend override. When empty (default), auto-detected from STORAGE_SERVICE.Values:
  • "" - Auto-detect from STORAGE_SERVICE (recommended)
  • "s3" - Force AWS S3
  • "gcs" - Force Google Cloud Storage
  • "azure" - Force Azure Blob Storage
  • "local" - Force local PVC storage
cube.cubestore.storage.remoteDir
string
default:"cubestore"
Path prefix within the storage bucket. Must NOT start with / — a leading slash causes S3 list-after-write failures.Default: "cubestore"
cube.cubestore.persistence.enabled
boolean
default:"false"
Enable PVC-based local storage. Only used when storage.type is empty. See the storage warning above.
cube.cubestore.persistence.size
string
default:"10Gi"
PVC storage size.
cube.cubestore.workers.replicas
integer
default:"2"
Number of Cubestore worker replicas.Default: 2 — Matches SaaS baseline. Increase for high query volume.
cube.cubestore.router.resources
object
Resource limits and requests for the Cubestore router.Defaults:
router:
  resources:
    limits:
      cpu: "1"
      memory: "2Gi"
    requests:
      cpu: "250m"
      memory: "512Mi"
cube.cubestore.workers.resources
object
Resource limits and requests for each Cubestore worker.Defaults:
workers:
  resources:
    limits:
      cpu: "1"
      memory: "2Gi"
    requests:
      cpu: "250m"
      memory: "512Mi"

Node Placement

cube.nodeSelector
object
default:"{}"
Node selector labels for Cube pod placement.Default: {} (no node restrictions)

Examples

Minimal

wharf:
  enabled: true

cube:
  enabled: true

With Multiple Cubestore Workers

wharf:
  enabled: true

cube:
  enabled: true
  cubestore:
    workers:
      replicas: 2

Disabled (Default)

cube:
  enabled: false