Important
The Hybrid deployment option requires an Enterprise plan.
Prerequisites
- 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 or Amazon ECS cluster has access to.
Kubernetes
Prerequisites
KEDAis installed on your cluster.- A valid
Ingresscontroller is installed on your cluster. - You have slack space in your cluster for multiple deployments.
Cluster-Autoscaleris recommended to automatically provision new nodes. - You will need to enable egress to two control plane URLs. The listener polls these endpoints for deployments:
Setup
- Provide your LangSmith organization ID to us. Your LangSmith organization will be configured to deploy the data plane in your cloud.
- Create a listener from the LangSmith UI. The
Listenerdata model is configured for the actual “listener” application.- In the left-hand navigation, select
LangGraph Platform>Listeners. - In the top-right of the page, select
+ Create Listener. - Enter a unique
Compute IDfor the listener. TheCompute IDis a user-defined identifier that should be unique across all listeners in the current LangSmith workspace. TheCompute IDis displayed to end users when they are creating a new deployment. Ensure that theCompute IDprovides context to the end user about where their LangGraph Server deployments will be deployed to. For example, aCompute IDcan be set tok8s-cluster-name-dev-01. In this example, the name of the Kubernetes cluster isk8s-cluster-name,devdenotes that the cluster is reserved for “development” workloads, and01is a numerical suffix to reduce naming collisions. - Enter one or more Kubernetes namespaces. Later, the “listener” application will be configured to deploy to each of these namespaces.
- In the top-right on the page, select
Submit. - After the listener is created, copy the listener ID. You will use it later when installing the actual “listener” application in the Kubernetes cluster (step 5).
Important Creating a listener from the LangSmith UI does not install the “listener” application in the Kubernetes cluster. - In the left-hand navigation, select
- A Helm chart is provided to install the necesssary components in your Kubernetes cluster.
langgraph-listener: This is a service that listens to LangChain’s control plane for changes to your deployments and creates/updates downstream CRDs. This is the “listener” application.LangGraphPlatform CRD: A CRD for LangGraph Platform deployments. This contains the spec for managing an instance of a LangGraph Platform deployment.langgraph-platform-operator: This operator handles changes to your LangGraph Platform CRDs.
- Configure your
langgraph-dataplane-values.yamlfile.config.langsmithApiKey: Thelanggraph-listenerdeployment authenticates with LangChain’s LangGraph control plane API with thelangsmithApiKey.config.langsmithWorkspaceId: Thelanggraph-listenerdeployment is coupled to LangGraph Server deployments in the LangSmith workspace. In other words, thelanggraph-listenerdeployment can only manage LangGraph Server deployments in the specified LangSmith workspace ID.config.langgraphListenerId: In addition to being coupled with a LangSmith workspace, thelanggraph-listenerdeployment is also coupled to a listener. When a new LangGraph Server deployment is created, it is automatically coupled to alanggraphListenerId. SpecifyinglanggraphListenerIdensures that thelanggraph-listenerdeployment can only manage LangGraph Server deployments that are coupled tolanggraphListenerId.config.watchNamespaces: A comma-separated list of Kubernetes namespaces that thelanggraph-listenerdeployment will deploy to. This list should match the list of namespaces specified in step 2d.config.enableLGPDeploymentHealthCheck: To disable the LangGraph Server health check, set this tofalse.ingress.hostname: As part of the deployment workflow, thelanggraph-listenerdeployment attempts to call the LangGraph Server health check endpoint (GET /ok) to verify that the application has started up correctly. A typical setup involves creating a shared DNS record or domain for LangGraph Server deployments. This is not managed by LangGraph Platform. Once created, setingress.hostnameto the domain, which will be used to complete the health check.operator.enabled: There can only be 1 instance of thelanggraph-platform-operatordeployed in a Kubernetes namespace. Set this tofalseif there is already an instance oflanggraph-platform-operatordeployed in the current Kubernetes namespace.operator.createCRDs: Set this value tofalseif the Kubernetes cluster already has theLangGraphPlatform CRDinstalled. During installation, an error will occur if the CRD is already installed. This situation may occur if multiple listeners are deployed on the same Kubernetes cluster.
- Deploy
langgraph-dataplaneHelm chart. - If successful, you will see three services start up in your namespace.
- Create a deployment from the control plane UI.
- Select the desired listener from the list of
Compute IDsin the dropdown menu. - Select the Kubernetes namespace to deploy to.
- Fill out all other required fields and select
Submitin the top-right of the panel. - The deployment will be deployed on the Kubernetes cluster where the listener is deployed and in the Kubernetes namespace specified in step 7b.
- Select the desired listener from the list of