v0.1.5

Configuration reference

Every environment variable Cryo reads and every top-level Helm value the chart accepts, with the default each one takes.

Updated 3 min readEdit this pageReport an issueView as Markdown
On this page

Environment variables#

Cryo reads these from the environment, with the CRYO_ prefix. A default of set from a secret, unset or computed means there is no safe default to print.

The full table, with every variable and its type, is in docs/CONFIGURATION.md.

VariableDefaultWhat it does
CRYO_ENVIRONMENTdevOne of dev, test, staging, prod. Decides whether the dev token is live and whether the default secret key is rejected.
CRYO_DATABASE_URLsecretPostgreSQL connection string. Holds the password.
CRYO_REDIS_URLsecretRedis connection string. Holds the password.
CRYO_SECRET_KEYsecretFernet key for stored connection secrets, and the default HS256 signing key. At least 32 characters; the published default is rejected in staging and prod.
CRYO_JWT_SECRETsecretOverrides the signing key for API tokens alone, leaving the encryption key separate.
CRYO_OIDC_ISSUER_URLunsetOIDC issuer. Setting it turns on RS256 token verification.
CRYO_OIDC_CLIENT_IDunsetOIDC client id.
CRYO_OIDC_CLIENT_SECRETsecretOIDC client secret, for the authorization-code exchange.
CRYO_OIDC_REDIRECT_URIunsetThe redirect URI registered with the provider. The UI callback.
CRYO_ALLOW_DEV_TOKEN_IN_PRODfalseKeeps the dev token live in prod. Anyone who can reach the API can self-grant any role while this is true.
CRYO_DISPLAY_TIMEZONEUTCIANA zone the install schedules and reports in. Also the zone the off-peak window is read in and the UI renders instants in.
CRYO_OFFPEAK_START_IST0Hour the off-peak window opens, in the display time zone. Equal bounds disable the gate.
CRYO_OFFPEAK_END_IST0Hour the off-peak window closes.
CRYO_SCAN_ENGINEpyiceberggo or pyiceberg. The Go scanner is faster and is what a large fleet should use.
CRYO_MAINTENANCE_WRITES_ENABLEDtrueThe master switch for anything that writes to your tables. Turning it off means Cryo plans and explains but does not execute.
CRYO_MAINTENANCE_COOLDOWN_HOURS20How long a table is left alone after maintenance, so a nightly preset does not re-run the same table.
CRYO_DEFAULT_RETENTION_DAYS7Default snapshot retention window, tightened automatically for frequently-written tables.
CRYO_MAX_JOBS_PER_SCHEDULED_RUN500Caps how many tables one scheduled run may touch, so a large fleet cannot flood the queue in one tick.

Helm values#

Top-level values in deploy/helm/cryo/values.yaml. The chart's schema, deploy/helm/cryo/values.schema.json, validates them at install time.

ValueDefaultWhat it does
imageobjectImage repository, tag and digest for the backend. Pin the digest for a production install.
imagePullSecrets[]Pull secrets for the registry. Needed when the registry is private.
serviceAccountobjectThe account Cryo pods run as. On EKS, put the IRSA role's annotation here.
podSecurityContextobjectApplied to every pod. Runs as the non-root cryo user by default.
globalobjectEnvironment values applied to every service, including the environment flag and the secret reference.
migrationobjectThe Alembic migration job. Runs on install and upgrade.
api, worker, governor, scheduler, scannerWorkerobjectsReplica counts, resource requests and limits for each service.
webobjectThe UI. Its image is separate from the backend's.
nativeobjectThe native Go compactor. It ships inside the main image and is dispatched as KEDA-scaled Jobs.
sparkobjectThe Spark-on-Kubernetes fallback engine.
scannerobjectThe scanner CronJob and its job-dispatch settings.
redisobjectThe Redis image and configuration. Redis itself is external; the chart ships a client.
ingress, networkPolicy, podDisruptionBudgetobjectsOpt-in hardening. Ingress and TLS are off by default; the NetworkPolicy denies pod-to-pod traffic the chart does not need.
observabilityobjectMetrics and tracing settings.
backupobjectBackup-related settings for the release.