Files
langgraph/docs/docs/cloud/deployment/self_hosted_control_plane.md
T
+2 3055c4b9cc [docs] LangGraph / LangGraph Platform docs updates (#4479)
Main changes made:
- Add top level horizontal tabs
- Reorganize the sidenav
- Build out README/index page
- Consolidate how-tos under each section
- Remove duplicate content

---------

Signed-off-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com>
Co-authored-by: Tat Dat Duong <david@duong.cz>
Co-authored-by: Sydney Runkle <sydneymarierunkle@gmail.com>
Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com>
Co-authored-by: Vadym Barda <vadym@langchain.dev>
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
Co-authored-by: ccurme <chester.curme@gmail.com>
Co-authored-by: Andrew Nguonly <andrewnguonly@users.noreply.github.com>
Co-authored-by: David Asamu <david.asamu@langchain.dev>
Co-authored-by: infra <mukil@langchain.dev>
Co-authored-by: Arjun Natarajan <arjun@langchain.dev>
2025-05-09 16:09:43 -04:00

3.0 KiB

How to Deploy Self-Hosted Control Plane

Before deploying, review the conceptual guide for the Self-Hosted Control Plane deployment option.

Prerequisites

  1. You are using Kubernetes.

  2. You have self-hosted LangSmith deployed.

  3. Use the LangGraph CLI to test your application locally.

  4. 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.

  5. KEDA is installed on your cluster.

      helm repo add kedacore https://kedacore.github.io/charts 
      helm install keda kedacore/keda --namespace keda --create-namespace
    
  6. Ingress Configuration

    1. You must set up an ingress for your LangSmith instance. All agents will be deployed as Kubernetes services behind this ingress.
    2. You can use this guide to set up an ingress for your instance.
  7. You have slack space in your cluster for multiple deployments. Cluster-Autoscaler is recommended to automatically provision new nodes.

  8. A valid Dynamic PV provisioner or PVs available on your cluster. You can verify this by running:

     kubectl get storageclass
    

Setup

  1. As part of configuring your Self-Hosted LangSmith instance, you enable the langgraphPlatform option. This will provision a few key resources.

    1. listener: This is a service that listens to the control plane for changes to your deployments and creates/updates downstream CRDs.
    2. LangGraphPlatform CRD: A CRD for LangGraph Platform deployments. This contains the spec for managing an instance of a LangGraph platform deployment.
    3. operator: This operator handles changes to your LangGraph Platform CRDs.
    4. host-backend: This is the control plane.
  2. 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"
    
  3. In your values.yaml file, enable the langgraphPlatform option. Note that you must also have a valid ingress setup: config: langgraphPlatform: enabled: true langgraphPlatformLicenseKey: "YOUR_LANGGRAPH_PLATFORM_LICENSE_KEY"

  4. In your values.yaml file, configure the hostBackendImage and operatorImage options (if you need to mirror images)

  5. You can also configure base templates for your agents by overriding the base templates here.

  6. You create a deployment from the control plane UI.