Skip to main content
Command cheat sheet for day-to-day operations against a GCP LangSmith deployment provisioned with the GCP Terraform modules. All make targets run from modules/gcp/. Run make help for an inline summary.

Deployment overview

Each stage builds on the previous. Verify pods are healthy before enabling the next.

First-time setup

make deploy-all chains apply, init-values, and deploy in one command. To keep the Helm release under Terraform instead of the deploy script, use the app layer:
The app layer uses its own variable names: sizing (not sizing_profile) and enable_agent_deploys (not enable_deployments).

Day-2 operations

Add-ons

Set flags in terraform.tfvars, then make init-values && make deploy. init-values.sh copies the matching example file into helm/values/ automatically.
To add an add-on after initial install without re-running init-values.sh, copy manually:

Sizing profiles

Set sizing_profile in terraform.tfvars, then re-run make init-values && make deploy.

kubectl

gcloud

Terraform

Key constraints

  • Uninstall Helm before terraform destroy. The Envoy Gateway load balancer references the VPC; leaving it blocks network deletion. Always run make uninstall first.
  • config.deployment.url must include https://. Without the protocol, operator-spawned agents stay stuck in DEPLOYING.
  • config.deployment.enabled: true is required for the LangSmith Deployment add-on. Setting only the URL without enabled: true silently skips listener and operator.
  • Encryption keys must never change after first enable. Rotating insights_encryption_key or polly_encryption_key permanently breaks existing encrypted data.
  • Roll the frontend after first Polly enable. agentBootstrap creates the langsmith-polly-config ConfigMap after registering; frontend pods started earlier do not pick it up.
  • Envoy Gateway IP changes on teardown. GCP releases the external IP when the Gateway is deleted. After terraform destroy and re-apply, update your DNS A record.
  • langsmith-ksa annotation is not permanent. The operator creates the ServiceAccount at runtime and it does not survive namespace deletion. deploy.sh re-annotates it idempotently.

Teardown