Skip to main content
Complete reference for every input variable exposed by the AWS Terraform modules. Use it while filling in terraform.tfvars for the first time or tuning an existing deployment. Variables come in two categories:
  • Non-sensitive (region, sizing, feature flags): set in infra/terraform.tfvars.
  • Sensitive (license key, passwords, encryption keys): sourced through infra/scripts/setup-env.sh, which writes them to AWS SSM Parameter Store; External Secrets Operator then syncs them into the cluster.
For the end-to-end install, refer to the deploy guide. For how the modules fit together, refer to the architecture reference.

Core

Networking

EKS

PostgreSQL (RDS)

Redis (ElastiCache)

S3

TLS and DNS

Ingress

Terraform rejects a configuration that sets more than one of enable_envoy_gateway, enable_istio_gateway, and enable_nginx_ingress to true.

ClickHouse

SmithDB

enable_smithdb provisions the SmithDB dependencies. The three gates require enable_smithdb = true, and smithdb_migration_enabled and smithdb_query_enabled each require smithdb_ingestion_enabled = true.

Bastion (private cluster)

Security and audit

Sizing and feature flags

sizing_profile and the enable_* flags in this table are read by init-values.sh and deploy.sh, which pick the Helm overlay files. Terraform acts on a flag only when it needs a dedicated database: enable_fleet with fleet_storage = "external", enable_insights or enable_polly with their *_storage = "external", and enable_standalone_insights or enable_standalone_polly. For those, Terraform creates the database-init Job and Kubernetes secrets, and a plan-time precondition requires postgres_source and redis_source to be external.
enable_agent_builder was removed in chart v16. Setting it to true fails validation at terraform plan, so replace enable_agent_builder = true with enable_fleet = true.

Sandboxes

Sensitive values (set with setup-env.sh)

Sourcing infra/scripts/setup-env.sh reads each value from SSM Parameter Store under /langsmith/{name_prefix}-{environment}/. On first run it generates or prompts for the value and stores it in SSM; External Secrets Operator syncs SSM into the cluster. Terraform reads only postgres_password, redis_auth_token, and sandbox_juicefs_redis_auth_token; the other TF_VAR_* values are declared but unused, so a value in terraform.tfvars never reaches SSM. To supply your own value, export it before sourcing the script, which writes it to SSM only if the parameter does not exist yet. An exported value also takes precedence over SSM for Terraform. To change a stored value, run manage-ssm.sh set. For the three values Terraform reads, setup-env.sh does not re-read a variable that is already exported, so unset it or open a new shell, source setup-env.sh again, and run make apply so the RDS and ElastiCache credentials match. Then restart the deployments that read the changed credential.