Platform layers
LangSmith on GCP deploys in up to five passes. Each pass adds a capability layer on top of the previous. All layers share the same GKE cluster andlangsmith namespace.

Module descriptions
Deployment tiers
Light deploy (all in-cluster)
terraform.tfvars:
Production (external managed services)
Application core services
One-time jobs
LangSmith Deployment add-on
Each LangGraph deployment created in the UI produces a Kubernetes Deployment in the
langsmith namespace, with pods running as the langsmith-ksa ServiceAccount. That ServiceAccount must carry the iam.gke.io/gcp-service-account annotation, which deploy.sh applies idempotently.
GCP managed services
Whenpostgres_source = "external" and redis_source = "external" (the recommended production setting), Terraform provisions:
Cloud SQL PostgreSQL
- Default size
db-custom-2-8192(2 vCPU, 8 GB), private IP, port 5432. - REGIONAL availability with automatic failover.
- Holds orgs, users, projects, API keys, settings.
- Terraform writes the connection URL directly to the
langsmith-postgresKubernetes Secret.
Memorystore Redis
- Default 5 GB, STANDARD_HA tier, private IP, port 6379.
- Trace ingestion queue, pub/sub, short-lived cache.
- No auth token required. Access is controlled by VPC private IP only.
- Terraform writes the connection URL directly to the
langsmith-redisKubernetes Secret.
Cloud Storage bucket
- Trace payloads: large inputs and outputs, attachments.
- Accessed via the S3-compatible API (
apiURL: https://storage.googleapis.com,engine: S3). - HMAC keys are required for the S3-compatible API even with Workload Identity. Create one under Cloud Storage → Settings → Interoperability and pass them to Helm via
config.blobStorage.accessKeyandconfig.blobStorage.accessKeySecret. - Lifecycle rules:
ttl_s/prefix (14 days default),ttl_l/prefix (400 days default). - Always required.
Secret Manager (optional module)
- Stores Postgres password and generated secrets (LangSmith secret key, JWT secret) when
enable_secret_manager_module = true. - Core secrets (
langsmith-postgres,langsmith-redis) are always stored in Kubernetes Secrets byk8s-bootstrapregardless of this module. Secret Manager provides an additional durable store for secrets that must survive cluster recreation.
Cluster infrastructure
The
Gateway resource is managed by Terraform; the HTTPRoute is managed by Helm. Do not delete the Gateway resource manually. GCP releases the external IP when the Gateway is deleted, and a new IP is issued on recreate.Workload Identity
GKE pods access GCS through Workload Identity. The Kubernetes ServiceAccount is bound to a GCP service account via an IAM binding; pods receive temporary credentials with no static keys in Secrets or environment variables.
The GSA is defined by the
iam module and output as workload_identity_annotation. init-values.sh writes these annotations into values-overrides.yaml automatically.
GCS access via the S3-compatible API requires HMAC keys in addition to Workload Identity. Create the HMAC key under Cloud Storage → Settings → Interoperability and pass it to Helm.
Network topology
Cloud SQL and Memorystore are accessed exclusively via private IP. The networking module establishes a private service connection (VPC peering to Google’s managed network) whenever
postgres_source = "external" or redis_source = "external".
Traffic flow
Component to storage mapping
Secret Manager integration
Without Secret Manager:Terraform module graph
helm upgrade --install.
Verification commands
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

