Skip to main content

Documentation Index

Fetch the complete documentation index at: https://langchain-5e9cc07a-preview-featse-1779998369-ad736a3.mintlify.app/llms.txt

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

Command cheat sheet for day-to-day operations against an AWS LangSmith deployment provisioned with the AWS Terraform modules. All make targets run from modules/aws/. Run make help for an inline summary. For the full deployment walkthrough, see the AWS deployment guide.

First-time setup

cd terraform/modules/aws

# 1. Generate terraform.tfvars (interactive wizard)
make quickstart

# 2. Load secrets into SSM Parameter Store and export TF_VAR_* into your shell.
#    Must use `source` — Make runs each target in a subshell.
source infra/scripts/setup-env.sh

# 2a. Confirm secrets and TF_VAR_* are set (optional but recommended)
make secrets

# 3. Provision infrastructure (~20–25 min)
make init
make plan       # review — confirm no unexpected destroy/replace actions
make apply

# 3a. Verify post-infra state (optional)
make preflight-post

# 4. Update kubeconfig for the EKS cluster
make kubeconfig

# 5. Generate Helm values from Terraform outputs
make init-values

# 6. Deploy LangSmith (~10 min)
make deploy
Fast path once make quickstart and source infra/scripts/setup-env.sh are complete:
make quickdeploy        # interactive (prompts before terraform apply)
make quickdeploy-auto   # non-interactive (auto-approves terraform)

Day-2 operations

# Check deployment state across all layers; print next-step guidance
make status

# Re-deploy after editing Helm values or upgrading
make deploy

# Re-generate Helm values after Terraform changes
make init-values

# Re-sync ESO secrets without redeploying
make apply-eso

# Check SSM secrets and TF_VAR_* export status (read-only)
make secrets

# List all SSM parameters with last-modified timestamps
make secrets-list

# Manage SSM secrets interactively (view, set, rotate, diff vs cluster)
make ssm

# Update kubeconfig for the EKS cluster
make kubeconfig

Preflight checks

# Pre-Terraform: AWS credentials + IAM permissions
make preflight

# Post-apply: kubectl, SSM params, Helm values, TLS config
make preflight-post

# SSM only — confirm all parameters are populated (after make setup-env)
make preflight-ssm

Add-ons

Add-ons are controlled by enable_* flags in infra/terraform.tfvars. Set the flags, re-run init-values to copy the matching values files, then re-deploy.
# infra/terraform.tfvars
enable_deployments     = true   # LangGraph Platform (required for Agent Builder and Polly)
enable_agent_builder   = true   # Agent Builder UI
enable_insights        = true   # ClickHouse-backed analytics
enable_polly           = true   # Polly AI eval/monitoring
enable_usage_telemetry = false  # Extended usage telemetry
make init-values
make deploy

Sizing profiles

Set sizing_profile in terraform.tfvars, then re-run make init-values && make deploy.
sizing_profile = "production"        # multi-replica with HPA (recommended)
sizing_profile = "production-large"  # high-volume (~50 users, ~1000 traces/sec)
sizing_profile = "dev"               # single-replica, minimal resources
sizing_profile = "default"           # chart defaults (no sizing file)

Make targets

Setup and secrets

CommandDescription
make quickstartInteractive wizard. Generates infra/terraform.tfvars (region, node size, TLS method, add-ons).
make setup-envPrints the exact source command for loading secrets into your shell. Cannot export variables directly.
make secretsShow SSM secrets status (✓ SET / ✗ MISSING) per parameter, check TF_VAR_* exports, give next steps.
make secrets-listList all SSM parameters for this deployment with last-modified timestamps.
make ssmInteractive SSM parameter manager. View, set, rotate, validate, diff vs the cluster Secret.

Preflight

CommandDescription
make preflightVerify AWS credentials, IAM permissions, and required CLI tools before Terraform runs.
make preflight-postRun after make apply. Checks kubectl context, cluster reachability, SSM params populated, Helm values present, TLS config.
make preflight-ssmCheck SSM params only. Narrower scope than preflight-post.

Infrastructure

CommandDescription
make initterraform init. Downloads providers and modules. Safe to re-run.
make planterraform plan. Preview changes. Review before every apply.
make applyterraform apply. Provisions VPC, EKS, RDS, ElastiCache, S3, ALB, IRSA. 20 to 25 minutes.
make destroyterraform destroy. Tears down all infrastructure. Run make uninstall first.

Helm deploy

CommandDescription
make init-valuesGenerate helm/values/langsmith-values-overrides.yaml from Terraform outputs. Copy add-on values files based on enable_* flags.
make deployDeploy or upgrade LangSmith via Helm. Runs preflight, ESO sync, layered values build, and core readiness checks.
make apply-esoRe-apply ESO ClusterSecretStore and ExternalSecret only. Use after rotating secrets without a full Helm redeploy.
make uninstallUninstall the LangSmith Helm release. Terraform infrastructure stays intact.

Terraform-managed Helm

CommandDescription
make init-appPull live infra Terraform outputs into app/infra.auto.tfvars.json.
make plan-appterraform plan for the app/ module. Auto-runs init-app first.
make apply-appDeploy LangSmith Helm release via Terraform (app/ module).
make destroy-appDestroy the Helm release via Terraform. Infrastructure stays intact.

Fast path

CommandDescription
make quickdeployFull deploy in one command. Chains terraform applykubeconfiginit-valueshelm deploy with gates.
make quickdeploy-autoSame as quickdeploy but non-interactive. Passes -auto-approve to terraform.
make deploy-allmake applymake kubeconfigmake init-valuesmake deploy in sequence.
make deploy-all-tfmake applymake init-values → Terraform app/ plan and apply in sequence.

Utilities

CommandDescription
make statusCheck deployment state across all layers, print what to run next.
make status-quickSame as status but skips SSM and Kubernetes queries (faster).
make kubeconfigUpdate ~/.kube/config with EKS cluster credentials (aws eks update-kubeconfig).
make tlsBYO ACM cert + Route 53 A alias. Use when langsmith_domain is set and you need DNS wiring.
make cleanRemove all local generated and sensitive files. Run after make destroy.

Testing

CommandDescription
make test-e2eEnd-to-end gateway tests (ALB or Envoy Gateway) against the current cluster.
make test-permutationsPermutation tests sequentially on the current cluster. Use ARGS="1 2 5" for a subset.
make test-parallelPermutation tests in parallel across isolated clusters. Your cluster is untouched.

kubectl

# Pod health
kubectl get pods -n langsmith
kubectl get pods -n langsmith -w
kubectl describe pod <pod-name> -n langsmith
kubectl logs <pod-name> -n langsmith --tail=100 -f
kubectl logs <pod-name> -n langsmith --previous --tail=50

# ALB and ingress
kubectl get ingress -n langsmith
kubectl describe ingress -n langsmith

# External Secrets Operator sync status
kubectl get externalsecret langsmith-config -n langsmith

# TLS
kubectl get certificate -n langsmith
kubectl get challenges -n langsmith
kubectl describe certificate <cert-name> -n langsmith

# Helm
helm status langsmith -n langsmith
helm history langsmith -n langsmith
helm get values langsmith -n langsmith

# IRSA — check per-component service account annotations
kubectl get sa -n langsmith -o yaml | grep eks.amazonaws.com

# LangSmith Deployment (LangGraph Platform)
kubectl get lgp -n langsmith
kubectl get crd | grep langchain
kubectl get pods -n keda

AWS CLI

# EKS
aws eks list-clusters --region <region>
aws eks describe-cluster --name <cluster-name> --region <region>
aws eks update-kubeconfig --region <region> --name <cluster-name>

# RDS
aws rds describe-db-instances \
  --query "DBInstances[?contains(DBInstanceIdentifier,'langsmith')]"

# ElastiCache
aws elasticache describe-cache-clusters \
  --query "CacheClusters[?contains(CacheClusterId,'langsmith')]"

# S3
aws s3 ls s3://<bucket-name>
aws s3api get-bucket-location --bucket <bucket-name>

# ALB
aws elbv2 describe-load-balancers \
  --query "LoadBalancers[?contains(LoadBalancerName,'langsmith')]"

# VPC endpoint
aws ec2 describe-vpc-endpoints \
  --filters "Name=service-name,Values=com.amazonaws.<region>.s3" \
  --query "VpcEndpoints[].State"

# SSM secrets
aws ssm get-parameters-by-path --path "/langsmith/<base-name>/" --with-decryption

# IAM role
aws iam get-role --role-name <irsa-role-name>

Terraform

cd modules/aws/infra

terraform init
terraform plan
terraform apply
terraform apply -target=module.eks
terraform output
terraform output -raw cluster_name
terraform output -raw alb_dns_name
terraform output -raw langsmith_irsa_role_arn
terraform output -raw bucket_name
terraform state list

Teardown

cd terraform/modules/aws

# Option A: script-driven deploy
make uninstall

# Option B: Terraform-managed deploy
make destroy-app

# Then destroy infrastructure:
# 1. Set postgres_deletion_protection = false in infra/terraform.tfvars
# 2. Apply the change, then destroy
cd infra
terraform apply
terraform destroy