默认情况下,LangSmith 将配置多个 Kubernetes 密钥来存储敏感信息,如许可证密钥、盐和其他配置参数。但是,您可能希望使用已在 Kubernetes 集群中创建的现有密钥(或通过某种密钥操作符配置)。如果您想以集中方式管理敏感信息或有特定的安全要求,这可能很有用。 默认情况下,我们将为 LangSmith 的不同组件配置以下密钥:
  • langsmith-secrets:此密钥包含许可证密钥和其他一些基本配置参数。您可以在此处查看此密钥的模板 here
  • langsmith-redis:此密钥包含 Redis 连接字符串和密码。您可以在此处查看此密钥的模板 here
  • langsmith-postgres:此密钥包含 Postgres 连接字符串和密码。您可以在此处查看此密钥的模板 here
  • langsmith-clickhouse:此密钥包含 ClickHouse 连接字符串和密码。您可以在此处查看此密钥的模板 here

要求

  • 现有的 Kubernetes 集群
  • 在集群中创建 Kubernetes 密钥的方法。可以使用 kubectl、Helm 图表或密钥操作符(如 Sealed Secrets)来完成

参数

您需要创建自己的 Kubernetes 密钥,这些密钥必须遵循 LangSmith Helm Chart 配置的密钥结构。
密钥必须与 LangSmith Helm Chart 配置的密钥具有相同的结构(请参阅上面的链接以查看特定密钥)。如果您缺少任何必需的键,您的 LangSmith 实例可能无法正常工作。
示例密钥可能如下所示:
apiVersion: v1
kind: Secret
metadata:
  name: langsmith-existing-secrets
  namespace: langsmith
stringData:
  oauth_client_id: foo
  oauth_client_secret: foo
  oauth_issuer_url: foo
  langsmith_license_key: foo
  langgraph_cloud_license_key: foo
  api_key_salt: foo
  jwt_secret: foo
  initial_org_admin_password: foo
  blob_storage_access_key: foo
  blob_storage_access_key_secret: foo
  azure_storage_account_key: foo
  azure_storage_connection_string: foo

配置

配置这些密钥后,您可以配置 LangSmith 实例直接使用密钥,以避免通过明文传递密钥值。您可以通过修改 LangSmith Helm Chart 安装的 langsmith_config.yaml 文件来完成此操作。
config:
  existingSecretName: "langsmith-secrets" # 包含许可证密钥和其他基本配置参数的密钥名称
redis:
  external:
    enabled: true # 设置为 true 以使用外部 Redis 实例。仅在使用外部 Redis 实例时才需要此密钥
    existingSecretName: "langsmith-redis" # 包含 Redis 连接字符串和密码的密钥名称
postgres:
  external:
    enabled: true # 设置为 true 以使用外部 Postgres 实例。仅在使用外部 Postgres 实例时才需要此密钥
    existingSecretName: "langsmith-postgres" # 包含 Postgres 连接字符串和密码的密钥名称
clickhouse:
  external:
    enabled: true # 设置为 true 以使用外部 ClickHouse 实例。仅在使用外部 ClickHouse 实例时才需要此密钥
    existingSecretName: "langsmith-clickhouse" # 包含 ClickHouse 连接字符串和密码的密钥名称
配置后,您需要更新 LangSmith 安装。您可以按照我们的升级指南 here。如果一切配置正确,您的 LangSmith 实例现在应该可以通过 Ingress 访问。您可以运行以下命令来检查您的密钥是否被正确使用:
kubectl describe deployment langsmith-backend | grep -i <secret-name>
您应该在输出中看到类似这样的内容:
POSTGRES_DATABASE_URI:                    <set to the key 'connection_url' in secret <your-secret-name>  Optional: false
CLICKHOUSE_DB:                            <set to the key 'clickhouse_db' in secret <your-secret-name>   Optional: false

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.