Skip to content

Commit 69e54e9

Browse files
langchain-infraCopilotkatmayb
authored
docs: update docs with some changes for v12 (#1097)
In V12, we are moving some parameters around to support the new naming conventions. Also update docs with gateway/istio support. Closes INF-1019 --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Kathryn May <[email protected]>
1 parent 562ccbb commit 69e54e9

File tree

2 files changed

+103
-8
lines changed

2 files changed

+103
-8
lines changed

src/langsmith/deploy-self-hosted-full-platform.mdx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ This guide builds on top of the [Kubernetes installation guide](/langsmith/kuber
3636
helm install keda kedacore/keda --namespace keda --create-namespace
3737
```
3838
6. Ingress Configuration
39-
1. You must set up an ingress for your LangSmith instance. All agents will be deployed as Kubernetes services behind this ingress. Use this guide to [set up an ingress](/langsmith/self-host-ingress) for your instance.
40-
7. You have slack space in your cluster for multiple deployments. `Cluster-Autoscaler` is recommended to automatically provision new nodes.
39+
1. You must set up an ingress, gateway, or use Istio for your LangSmith instance. All agents will be deployed as Kubernetes services behind this ingress. Use this guide to [set up an ingress](/langsmith/self-host-ingress) for your instance.
40+
7. You must have slack space in your cluster for multiple deployments. `Cluster-Autoscaler` is recommended to automatically provision new nodes.
4141
8. A valid Dynamic PV provisioner or PVs available on your cluster. You can verify this by running:
4242
```bash
4343
kubectl get storageclass
@@ -60,9 +60,12 @@ This guide builds on top of the [Kubernetes installation guide](/langsmith/kuber
6060
repository: "docker.io/langchain/langgraph-operator"
6161
pullPolicy: IfNotPresent
6262
```
63-
3. In your config file for langsmith (usually `langsmith_config.yaml`), enable the `langgraphPlatform` option. Note that you must also have a valid ingress setup:
63+
3. In your config file for langsmith (usually `langsmith_config.yaml`), enable the `deployment` option. Note that you must also have a valid ingress setup:
6464
```bash
6565
config:
66+
deployment:
67+
enabled: true
68+
# As of v0.12.0, this section is deprecated. Use config.deployment for any version after v0.12.0.
6669
langgraphPlatform:
6770
enabled: true
6871
langgraphPlatformLicenseKey: "YOUR_LANGGRAPH_PLATFORM_LICENSE_KEY"

src/langsmith/self-host-ingress.mdx

Lines changed: 97 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,23 @@ title: Create an Ingress for installations (Kubernetes)
33
sidebarTitle: Create an Ingress for installations (Kubernetes)
44
---
55

6-
By default, LangSmith will provision a LoadBalancer service for the `langsmith-frontend`. Depending on your cloud provider, this may result in a public IP address being assigned to the service. If you would like to use a custom domain or have more control over the routing of traffic to your LangSmith installation, you can configure an Ingress.
6+
By default, LangSmith will provision a LoadBalancer service for the `langsmith-frontend`. Depending on your cloud provider, this may result in a public IP address being assigned to the service. If you would like to use a custom domain or have more control over the routing of traffic to your LangSmith installation, you can configure an Ingress, Gateway API, or Istio Gateway.
77

88
## Requirements
99

1010
* An existing Kubernetes cluster
11-
* An existing Ingress Controller installed in your Kubernetes cluster
11+
* One of the following installed in your Kubernetes cluster:
12+
* An Ingress Controller (for standard Ingress)
13+
* Gateway API CRDs and a Gateway resource (for Gateway API)
14+
* Istio (for Istio Gateway)
1215

1316
## Parameters
1417

1518
You may need to provide certain parameters to your LangSmith installation to configure the Ingress. Additionally, we will want to convert the `langsmith-frontend` service to a ClusterIP service.
1619

1720
* *Hostname (optional)*: The hostname that you would like to use for your LangSmith installation. E.g `"langsmith.example.com"`. If you leave this empty, the ingress will serve all traffic to the LangSmith installation.
1821

19-
* *Subdomain (optional)*: If you would like to serve LangSmith under a URL path, you can specify it here. For example, adding `"langsmith"` will serve the application at `"example.hostname.com/langsmith"`. This will apply to UI paths as well as API endpoints.
22+
* *BasePath (optional)*: If you would like to serve LangSmith under a URL basePath, you can specify it here. For example, adding `"langsmith"` will serve the application at `"example.hostname.com/langsmith"`. This will apply to UI paths as well as API endpoints.
2023

2124
* *IngressClassName (optional)*: The name of the Ingress class that you would like to use. If not set, the default Ingress class will be used.
2225

@@ -44,13 +47,20 @@ You may need to provide certain parameters to your LangSmith installation to con
4447
4548
## Configuration
4649
50+
You can configure your LangSmith instance to use one of three routing options: standard Ingress, Gateway API, or Istio Gateway. Choose the option that best fits your infrastructure.
51+
52+
### Option 1: Standard Ingress
53+
4754
With these parameters in hand, you can configure your LangSmith instance to use an Ingress. You can do this by modifying the `config.yaml` file for your LangSmith Helm Chart installation.
4855

4956
```yaml
57+
config:
58+
hostname: "" # Main domain for LangSmith
59+
basePath: "" # If you want to serve langsmith under a URL base path (e.g., /langsmith)
5060
ingress:
5161
enabled: true
52-
hostname: "" # Main domain for LangSmith
53-
subdomain: "" # If you want to serve langsmith on a subdomain
62+
hostname: "" # Deprecated: Use config.hostname instead after v0.12.0
63+
subdomain: "" # Deprecated: Use config.hostname instead after v0.12.0
5464
ingressClassName: "" # If not set, the default ingress class will be used
5565
annotations: {} # Add annotations here if needed
5666
labels: {} # Add labels here if needed
@@ -76,3 +86,85 @@ langsmith-ingress nginx <host> 35.227.243.203 80, 443 95d
7686
<Warning>
7787
If you do not have automated DNS setup, you will need to add the IP address to your DNS provider manually.
7888
</Warning>
89+
90+
### Option 2: Gateway API
91+
92+
<Note>
93+
Gateway API support is available as of LangSmith v0.12.0
94+
</Note>
95+
96+
If your cluster uses the [Kubernetes Gateway API](https://gateway-api.sigs.k8s.io/), you can configure LangSmith to provision HTTPRoute resources. This will create an HTTPRoute for LangSmith and an HTTPRoute for each [agent deployment](/langsmith/deployments).
97+
98+
#### Parameters
99+
100+
* *name (required)*: The name of the Gateway resource to reference
101+
* *namespace (required)*: The namespace where the Gateway resource is located
102+
* *hostname (optional)*: The hostname that you would like to use for your LangSmith installation. E.g `"langsmith.example.com"`
103+
* *basePath (optional)*: If you would like to serve LangSmith under a base path, you can specify it here. E.g "example.com/langsmith"
104+
* *sectionName (optional)*: The name of a specific listener section in the Gateway to use
105+
* *annotations (optional)*: Additional annotations to add to the HTTPRoute resources
106+
* *labels (optional)*: Additional labels to add to the HTTPRoute resources
107+
108+
#### Configuration
109+
110+
```yaml
111+
config:
112+
hostname: "" # Main domain for LangSmith
113+
basePath: "" # If you want to serve langsmith under a base path. E.g "example.com/langsmith"
114+
gateway:
115+
enabled: true
116+
name: "my-gateway" # Name of your Gateway resource
117+
namespace: "gateway-system" # Namespace of your Gateway resource
118+
sectionName: "" # Optional: specific listener section name
119+
annotations: {} # Add annotations here if needed
120+
labels: {} # Add labels here if needed
121+
frontend:
122+
service:
123+
type: ClusterIP
124+
```
125+
126+
Once configured, you can check the status of your HTTPRoutes:
127+
128+
```bash
129+
kubectl get httproute
130+
```
131+
132+
### Option 3: Istio Gateway
133+
134+
<Note>
135+
Istio Gateway support is available as of LangSmith v0.12.0
136+
</Note>
137+
138+
If your cluster uses [Istio](https://istio.io/), you can configure LangSmith to provision VirtualService resources. This will create a VirtualService for LangSmith and a VirtualService for each [agent deployment](/langsmith/deployments).
139+
140+
#### Parameters
141+
142+
* *name (optional)*: The name of the Istio Gateway resource to reference. Defaults to `"istio-gateway"`
143+
* *namespace (optional)*: The namespace where the Istio Gateway resource is located. Defaults to `"istio-system"`
144+
* *hostname (optional)*: The hostname that you would like to use for your LangSmith installation. E.g `"langsmith.example.com"`
145+
* *basePath (optional)*: If you would like to serve LangSmith under a base path, you can specify it here. E.g "example.com/langsmith"
146+
* *annotations (optional)*: Additional annotations to add to the VirtualService resources
147+
* *labels (optional)*: Additional labels to add to the VirtualService resources
148+
149+
#### Configuration
150+
151+
```yaml
152+
config:
153+
hostname: "" # Main domain for LangSmith
154+
basePath: "" # If you want to serve langsmith on a separate basePath. E.g "example.com/langsmith"
155+
istioGateway:
156+
enabled: true
157+
name: "istio-gateway" # Name of your Istio Gateway resource
158+
namespace: "istio-system" # Namespace of your Istio Gateway resource
159+
annotations: {} # Add annotations here if needed
160+
labels: {} # Add labels here if needed
161+
frontend:
162+
service:
163+
type: ClusterIP
164+
```
165+
166+
Once configured, you can check the status of your VirtualServices:
167+
168+
```bash
169+
kubectl get virtualservice
170+
```

0 commit comments

Comments
 (0)