Skip to main content
Complete reference for every input variable exposed by the Azure 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): set with make setup-env, which writes them to infra/secrets.auto.tfvars (gitignored, auto-loaded by Terraform) and stores them in Azure Key Vault.
For the end-to-end install, refer to the deploy guide. For how the modules fit together, refer to the architecture reference.

Core

Networking

AKS

Data sources

PostgreSQL

Redis

Blob storage

Key Vault

Ingress

DNS and TLS

LangSmith application

Sizing and add-on flags

init-values.sh and deploy.sh read these flags; Terraform ignores them. They control which Helm overlays the scripts generate.

Security and audit

Sensitive variables (set with setup-env.sh)

make setup-env writes these to secrets.auto.tfvars and Terraform stores them in Azure Key Vault. Never set these inline in terraform.tfvars. make setup-env also manages postgres_admin_password and langsmith_admin_email, documented in the PostgreSQL and LangSmith application sections. This table lists only the sensitive variables that do not appear elsewhere in this reference.

App module variables (Terraform path)

The Terraform path (make init-app then make apply-app) manages the LangSmith Helm release, its Kubernetes Secret, and the Workload Identity ServiceAccount in Terraform state instead of through the Helm shell scripts. Its variables live in app/terraform.tfvars. Use this path as an alternative to make init-values && make deploy. For when to choose this path, refer to the Azure deployment guide. make init-app auto-populates the infrastructure passthrough variables (subscription_id, resource_group_name, cluster_name, keyvault_name, storage_account_name, storage_container_name, workload_identity_client_id, langsmith_namespace, tls_certificate_source, ingress_controller, and dns_label) from the infra module outputs. Each defaults to null and fails at plan time with a precondition error naming what is missing. Override them only when running the app module against infrastructure you provisioned separately. Set the following in app/terraform.tfvars: