How to Deploy Self-Hosted Control Plane (Beta)¶
Before deploying, review the conceptual guide for the Self-Hosted Control Plane deployment option.
Prerequisites¶
- You are using Kubernetes.
- You have self-hosted LangSmith deployed.
- Use the LangGraph CLI to test your application locally.
- Use the LangGraph CLI to build a Docker image (i.e.
langgraph build
) and push it to a registry your Kubernetes cluster has access to. -
KEDA
is installed on your cluster.helm repo add kedacore https://kedacore.github.io/charts helm install keda kedacore/keda --namespace keda --create-namespace
-
Ingress Configuration (recommended)
-
Install
Ingress Nginx
to serve as a reverse proxy for your deployment.helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update helm install ingress-nginx ingress-nginx/ingress-nginx
-
Provision a root domain that will suffix all domains for your workloads (e.g.
us.langgraph.app
). - Provision wildcard certificates to terminate TLS for your deployments.
- Note: If this step is skipped, you will need to provision domains/certs for each of your deployments.
-
-
You have slack space in your cluster for multiple deployments.
Cluster-Autoscaler
is recommended to automatically provision new nodes.
Setup¶
- As part of configuring your Self-Hosted LangSmith instance, you enable the
langgraphPlatform
option. This will provision a few key resources.listener
: This is a service that listens to the control plane for changes to your deployments and creates/updates downstream CRDs.LangGraphPlatform CRD
: A CRD for LangGraph Platform deployments. This contains the spec for managing an instance of a LangGraph platform deployment.operator
: This operator handles changes to your LangGraph Platform CRDs.host-backend
: This is the control plane.
-
Two additional images will be used by the chart.
hostBackendImage: repository: "docker.io/langchain/hosted-langserve-backend" pullPolicy: IfNotPresent tag: "0.9.80" operatorImage: repository: "docker.io/langchain/langgraph-operator" pullPolicy: IfNotPresent tag: "aa9dff4"
-
In your
values.yaml
file, enable thelanggraphPlatform
option.config: langgraphPlatform: enabled: true langgraphPlatformLicenseKey: "YOUR_LANGGRAPH_PLATFORM_LICENSE_KEY" rootDomain: "YOUR_ROOT_DOMAIN"
-
You can also configure base templates for your agents by overriding the base templates here.
- You create a deployment from the Control Plane UI.