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¶
Language Operator ships as two separate Helm charts:
| Chart | Purpose |
|---|---|
language-operator/language-operator |
Operator, CRDs, RBAC, webhooks |
language-operator/language-operator-runtimes |
Bundled LanguageAgentRuntime presets (openclaw, opencode, claude-code) |
Install the operator chart first, then the runtimes chart.
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. Install the Runtimes¶
The language-operator-runtimes chart installs the bundled LanguageAgentRuntime presets (openclaw, opencode, and claude-code). These are cluster-scoped resources — install once and reference from any namespace.
helm install language-operator-runtimes \
language-operator/language-operator-runtimes \
--namespace language-operator
Operator must be installed first
The runtimes chart requires the CRDs installed by the operator chart. Always install language-operator before language-operator-runtimes.
You can selectively disable runtimes you don't need:
helm install language-operator-runtimes \
language-operator/language-operator-runtimes \
--namespace language-operator \
--set runtimes.claudeCode.enabled=false
4. Verify Installation¶
Check that the operator pod is running:
Expected output:
Check CRDs are installed:
Expected output:
languageagentruntimes.langop.io
languageagents.langop.io
languageclusters.langop.io
languagemodels.langop.io
languagepersonas.langop.io
languagetools.langop.io
Check runtimes are installed:
Expected output:
Upgrade¶
Upgrade the operator to the latest version:
helm repo update
helm upgrade language-operator language-operator/language-operator \
--namespace language-operator
Upgrade runtimes separately:
helm upgrade language-operator-runtimes language-operator/language-operator-runtimes \
--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/charts/language-operator/templates/crds/langop.io_languageagents.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/charts/language-operator/templates/crds/langop.io_languageagentruntimes.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/charts/language-operator/templates/crds/langop.io_languageclusters.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/charts/language-operator/templates/crds/langop.io_languagemodels.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/charts/language-operator/templates/crds/langop.io_languagepersonas.yaml
kubectl apply -f https://raw.githubusercontent.com/language-operator/language-operator/main/charts/language-operator/templates/crds/langop.io_languagetools.yaml
Check the release notes before upgrading to see if CRD changes are included.
Uninstall¶
Remove the runtimes chart first, then the operator:
helm uninstall language-operator-runtimes --namespace language-operator
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.