Skip to content

How to Deploy Self-Hosted Control Plane (Beta)

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 (recommended)

    1. 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
      
    2. Provision a root domain that will suffix all domains for your workloads (e.g. us.langgraph.app).

    3. Provision wildcard certificates to terminate TLS for your deployments.
    4. Note: If this step is skipped, you will need to provision domains/certs for each of your deployments.
  7. You have slack space in your cluster for multiple deployments. Cluster-Autoscaler is recommended to automatically provision new nodes.

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.

    config:
      langgraphPlatform:
        enabled: true
        langgraphPlatformLicenseKey: "YOUR_LANGGRAPH_PLATFORM_LICENSE_KEY"
        rootDomain: "YOUR_ROOT_DOMAIN"
    
  4. You can also configure base templates for your agents by overriding the base templates here.

  5. You create a deployment from the Control Plane UI.

Comments