Skip to content
LangSmith 文档版本 跟随上游 源快照 9caf8ff8 更新于 2026-10-18

GCP Terraform 变量参考

GCP GKE 上自托管 LangSmith 的 Terraform 变量完整参考。

完整参考 GCP Terraform 模块公开的每个输入变量。在首次填写 terraform.tfvars 或调整现有部署时使用它。

变量分为两类:

  • 非敏感(区域、规模、功能标志):在 infra/terraform.tfvars 中设置。
  • 敏感(许可证密钥、密码、加密密钥):通过 infra/scripts/setup-env.sh 获取,该脚本将它们写入 Google Secret Manager,并为 Terraform 和 Helm 步骤导出。

有关端到端安装,请参阅部署指南。有关模块如何组合在一起,请参阅架构参考。

核心

变量默认值必填描述
project_id—是创建资源的 GCP 项目 ID。
regionus-west2否区域资源的 GCP 区域。
zoneus-west2-a否可用区资源的 GCP 可用区。
environmentprod否应用于标签的环境名称:dev、staging 或 prod。
name_prefixls否所有资源名称的前缀。1 到 11 个字符,以小写字母开头;仅限小写字母、数字和连字符。
unique_suffixtrue否在资源名称后追加随机后缀。多租户项目推荐使用。
ownerplatform-team否应用于所有资源的所有者标签。
cost_center""否用于计费归因的成本中心标签。
labels{}否应用于所有资源的其他标签。

网络

变量默认值必填描述
subnet_cidr10.0.0.0/20否GKE 子网的 CIDR。不得与现有范围重叠。
pods_cidr10.4.0.0/14否GKE pod 的 CIDR。不得与子网或服务范围重叠。
services_cidr10.8.0.0/20否GKE 服务的 CIDR。不得与子网或 pod 范围重叠。
gke_master_authorized_cidrs[]否允许访问 GKE 控制平面端点的外部 CIDR。空值会使控制平面可公开访问,以便 Terraform 管理的 Helm 和 kubectl 步骤可从任何应用主机运行。生产环境请填入操作员和 CI 出口 CIDR。

GKE

变量默认值必填描述
gke_use_autopilotfalse否使用 GKE Autopilot 模式。Autopilot 始终使用 Dataplane V2。
gke_node_count2否每个区域的初始节点数(仅标准模式)。
gke_min_nodes2否自动扩缩容时每个区域的最小节点数。
gke_max_nodes10否自动扩缩容时每个区域的最大节点数。
gke_machine_typee2-standard-4否GKE 节点机器类型(例如 e2-standard-4、n2-standard-8)。
gke_disk_size100否节点磁盘大小(GB)。
gke_release_channelREGULAR否GKE 发布通道:RAPID、REGULAR 或 STABLE。
gke_deletion_protectiontrue否在 GKE 集群上启用删除保护。
gke_network_policy_providerDATA_PLANE_V2否网络策略提供程序:CALICO(旧版)或 DATA_PLANE_V2(基于 Cilium,推荐)。

PostgreSQL (Cloud SQL)

变量默认值必填描述
postgres_sourceexternal否external(具有私有 IP 的 Cloud SQL)或 in-cluster(通过 Helm 部署)。
postgres_versionPOSTGRES_15否Cloud SQL PostgreSQL 版本。
postgres_tierdb-custom-2-8192否Cloud SQL 机器层级(例如 db-f1-micro、db-custom-2-8192)。
postgres_disk_size50否Cloud SQL 磁盘大小(GB)。
postgres_high_availabilitytrue否启用 Cloud SQL HA(区域备用)。
postgres_deletion_protectiontrue否在 Cloud SQL 上启用删除保护。
postgres_database_flags见描述否在 Cloud SQL 实例上设置的数据库标志。默认为 max_connections = 500 以及检查点和连接日志标志。
postgres_ssl_modeENCRYPTED_ONLY否Cloud SQL SSL 强制。ENCRYPTED_ONLY 要求每个连接使用 TLS。ALLOW_UNENCRYPTED_AND_ENCRYPTED 接受明文。TRUSTED_CLIENT_CERTIFICATE_REQUIRED 还要求客户端证书。
postgres_password""当 external 时Cloud SQL 密码。通过 TF_VAR_postgres_password 设置,或由 setup-env.sh 存储在 Secret Manager 中。

Redis (Memorystore)

变量默认值必填描述
redis_sourceexternal否external(具有私有 IP 的 Memorystore)或 in-cluster(通过 Helm 部署)。
redis_versionREDIS_7_0否Memorystore Redis 版本。
redis_memory_size5否Memorystore Redis 内存大小(GB)。
redis_high_availabilitytrue否启用 Memorystore HA(标准 HA 层级)。
redis_prevent_destroyfalse否防止意外 Terraform 销毁 Redis 实例。

ClickHouse

变量默认值必填描述
clickhouse_sourcein-cluster否in-cluster(仅开发/POC)、langsmith-managed(生产环境推荐)或 external(自托管)。
clickhouse_host""当 managed 或 external 时ClickHouse 主机。
clickhouse_port9440否ClickHouse 原生协议端口(TLS 使用 9440,非 TLS 使用 9000)。
clickhouse_http_port8443否ClickHouse HTTP 端口(TLS 使用 8443,非 TLS 使用 8123)。
clickhouse_userdefault否ClickHouse 用户名。
clickhouse_password""当 managed 或 external 时ClickHouse 密码。
clickhouse_databasedefault否ClickHouse 数据库名称。
clickhouse_tlstrue否为 ClickHouse 连接启用 TLS。
clickhouse_ca_cert""否用于 TLS 验证的 ClickHouse CA 证书(PEM)。空值使用系统 CA。

GCS 存储

变量默认值必填描述
storage_ttl_short_days14否ttl_s/ 前缀的 GCS TTL 天数。
storage_ttl_long_days400否ttl_l/ 前缀的 GCS TTL 天数。
storage_force_destroyfalse否即使桶内有对象也允许删除桶。请谨慎使用。

LangSmith 应用

变量默认值必填描述
langsmith_namespacelangsmith否LangSmith 的 Kubernetes 命名空间。
langsmith_domainlangsmith.example.com否LangSmith 的完全限定域名。
langsmith_license_key""否许可证密钥。使用 TF_VAR_langsmith_license_key。
langsmith_helm_chart_version""否建议的 chart 版本,作为 Terraform 输出公开。部署脚本通过 CHART_VERSION 环境变量固定 chart 行(默认 ~0.15.1,最新的 0.15.x 补丁)。导出 CHART_VERSION 以覆盖。

Ingress 和 TLS

变量默认值必填描述
install_ingresstrue否通过 Terraform 安装 ingress controller。Gateway 仅支持 HTTPS,因此 tls_certificate_source 必须为 letsencrypt 或 existing。
ingress_typeenvoy否Ingress 类型:envoy(已实现),或 istio / other(保留)。
tls_certificate_sourcenone否none、letsencrypt(通过 cert-manager 自动)或 existing(提供你自己的证书)。
install_cert_managerfalse否为 Let's Encrypt 证书安装 cert-manager。
letsencrypt_email""当 letsencrypt 时Let's Encrypt 通知邮箱。
tls_certificate_crt""当 existing 时TLS 证书(PEM)。使用 file() 加载。
tls_certificate_key""当 existing 时TLS 私钥(PEM)。使用 file() 加载。
tls_secret_namelangsmith-tls否Kubernetes 中 TLS secret 的名称。

KEDA

变量默认值必填描述
enable_langsmith_deploymenttrue否安装 KEDA,以对 LangSmith worker 进行队列驱动的自动扩缩容。这是 KEDA 安装开关,不是 LangSmith Deployment 功能(请参阅 enable_deployments)。

可选的 GCP 模块

变量默认值必填描述
enable_gcp_iam_moduletrue否连接 modules/iam,用于 Workload Identity 和桶 IAM 绑定。
enable_secret_manager_modulefalse否连接 modules/secrets,将生成的引导凭据存储在 Secret Manager 中。
enable_dns_modulefalse否连接 modules/dns,用于 Cloud DNS 和托管证书。
dns_create_zonetrue否启用 DNS 模块时创建新的 Cloud DNS 托管区域。
dns_existing_zone_name""当 !dns_create_zone 时要使用的现有 Cloud DNS 区域。
dns_create_certificatetrue否启用 DNS 模块时创建 Google 管理的 SSL 证书。

规模和功能标志

app Terraform 层和 Helm 部署脚本会读取这些标志,以启用匹配的 chart 组件并配置按功能划分的数据库。sizing_profile 由部署脚本读取,用于选择 Helm 规模 overlay。

变量默认值必填描述
sizing_profiledefault否Helm 规模:production(~20 个用户,~100 条追踪/秒)、production-large(~50 个用户,~1000 条追踪/秒)、dev(单副本)、minimum(成本停泊下限,不用于生产)或 default(chart 默认值)。
enable_deploymentsfalse否启用 LangSmith Deployment(listener、operator、host-backend)。需要 Deployments 许可证权益。
enable_agent_builderfalse否启用 Agent Builder。需要 enable_deployments = true 和 Agent Builder 权益。
enable_insightsfalse否启用 Insights(ClickHouse 支持的分析)。需要 Insights 权益。
enable_pollyfalse否启用 Polly(AI 评估和监控)。需要 enable_deployments = true 和 Polly 权益。
enable_fleetfalse否启用 Fleet 独立部署(chart v0.15+)。不需要 enable_deployments。从 enable_agent_builder 迁移时复用 langsmith_agent_builder_encryption_key。
enable_standalone_pollyfalse否启用 Polly 独立部署(chart v0.15+)。不需要 enable_deployments。复用 langsmith_polly_encryption_key。
enable_standalone_insightsfalse否启用 Insights 独立部署(chart v0.15+)。不需要 enable_deployments。复用 langsmith_insights_encryption_key。
enable_usage_telemetryfalse否启用扩展使用遥测报告(PHONE_HOME_USAGE_REPORTING_ENABLED)。

敏感值(使用 setup-env.sh 设置)

获取 infra/scripts/setup-env.sh 会将这些值写入 Google Secret Manager,并为 Terraform 和 Helm 步骤将它们导出到当前 shell。切勿在 terraform.tfvars 中内联设置这些值。

变量描述
langsmith_license_keyLangSmith 企业许可证密钥。
langsmith_admin_password初始组织管理员密码。
langsmith_api_key_salt用于哈希 API 密钥的盐。首次部署后必须保持稳定。
langsmith_jwt_secret用于 Basic Auth 会话的 JWT 密钥。必须保持稳定。
langsmith_deployments_encryption_key用于 LangSmith Deployment 的 Fernet 密钥。绝不能更改。
langsmith_agent_builder_encryption_key用于 Agent Builder 的 Fernet 密钥。绝不能更改。
langsmith_insights_encryption_key用于 Insights 的 Fernet 密钥。绝不能更改。
langsmith_polly_encryption_key用于 Polly 的 Fernet 密钥。绝不能更改。

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。