Skip to content

Installation

This guide covers installing the Language Operator on your Kubernetes cluster.

Requirements

Hardware

Minimum recommended node capacity:

  • 2 CPU cores (4+ for running agents)
  • 4Gi RAM (8Gi+ for running agents)
  • 15Gi persistent storage (10Gi workspace per agent)

Cluster

  • Kubernetes 1.26+
  • kubectl and Helm 3.8+
  • cert-manager v1.12+ — required for webhook TLS
  • NetworkPolicy-capable CNI — Cilium, Calico, Weave, or Antrea
  • Persistent storage — for agent workspace PVCs

See the Kubernetes guide for instructions on installing and verifying these prerequisites.

Install via Helm

1. Add the Helm Repository

helm repo add language-operator \
  https://language-operator.github.io/language-operator

helm repo update

2. Install the Operator

Install into the language-operator namespace, substituting the values for your cluster:

helm install language-operator \
  language-operator/language-operator \
  --create-namespace \
  --namespace language-operator \
  --set config.agents.ingressClassName=traefik \
  --set config.agents.storageClassName=local-path \
  --set config.gateway.ingressClassName=traefik \
  --set config.tls.certificateIssuerName=letsencrypt-production \
  --set config.tls.certificateIssuerKind=ClusterIssuer

Values vary by cluster

Replace traefik with your ingress class (e.g. nginx, alb), local-path with your StorageClass, and the TLS issuer with the name of your cert-manager ClusterIssuer or Issuer. All of these can also be set in a values file with helm install -f values.yaml.

See the complete values.yaml for all available configuration options.

3. Verify Installation

Check that the operator pod is running:

kubectl get pods -n language-operator

Expected output:

NAME                                  READY   STATUS    RESTARTS   AGE
language-operator-5f7b8d9c4d-x8z2q    1/1     Running   0          30s

Check CRDs are installed:

kubectl get crds | grep langop.io

Expected output:

languageagentruntimes.langop.io
languageagents.langop.io
languageclusters.langop.io
languagemodels.langop.io
languagepersonas.langop.io
languagetools.langop.io

Upgrade

Upgrade the operator to the latest version:

helm repo update
helm upgrade language-operator language-operator/language-operator \
  --namespace language-operator

CRD schema changes

Helm does not update CRDs automatically on helm upgrade. When upgrading to a version that includes CRD changes, apply the updated CRDs first:

kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/chart/crds/langop.io_languageagents.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/chart/crds/langop.io_languageagentruntimes.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/chart/crds/langop.io_languageclusters.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/chart/crds/langop.io_languagemodels.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/chart/crds/langop.io_languagepersonas.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/chart/crds/langop.io_languagetools.yaml

Check the release notes before upgrading to see if CRD changes are included.

Uninstall

Remove the operator (CRDs and custom resources will be deleted):

helm uninstall language-operator --namespace language-operator

Data Loss

Uninstalling will delete all LanguageAgent, LanguageModel, and related resources. Back up any important configurations before uninstalling.