Waarom geen Helm?
OpenClaw is één container met enkele configuratiebestanden. De interessante aanpassing zit in agentinhoud (Markdown-bestanden, skills, configuratie-overschrijvingen), niet in infrastructuurtemplating. Kustomize verwerkt overlays zonder de overhead van een Helm-chart. Als je deployment complexer wordt, kan een Helm-chart boven op deze manifests worden gelegd.Wat je nodig hebt
- Een draaiend Kubernetes-cluster (AKS, EKS, GKE, k3s, kind, OpenShift, enz.)
kubectlverbonden met je cluster- Een API-sleutel voor ten minste één modelprovider
Snel starten
./scripts/k8s/deploy.sh --show-token het token na de deployment.
Lokaal testen met Kind
Als je geen cluster hebt, maak er lokaal een aan met Kind:./scripts/k8s/deploy.sh.
Stap voor stap
1) Deployen
Optie A — API-sleutel in omgeving (één stap):--show-token met beide commando’s als je het token naar stdout wilt laten printen voor lokaal testen.
2) Toegang tot de Gateway
Wat wordt gedeployed
Aanpassing
Agentinstructies
Bewerk deAGENTS.md in scripts/k8s/manifests/configmap.yaml en deploy opnieuw:
Gateway-configuratie
Bewerkopenclaw.json in scripts/k8s/manifests/configmap.yaml. Zie Gateway-configuratie voor de volledige referentie.
Providers toevoegen
Voer opnieuw uit met extra geëxporteerde sleutels:Aangepaste namespace
Aangepaste image
Bewerk het veldimage in scripts/k8s/manifests/deployment.yaml:
Buiten port-forward beschikbaar maken
De standaardmanifests binden de Gateway aan loopback binnen de pod. Dat werkt metkubectl port-forward, maar niet met een Kubernetes Service- of Ingress-pad dat het pod-IP moet bereiken.
Als je de Gateway via een Ingress of load balancer beschikbaar wilt maken:
- Wijzig de Gateway-bind in
scripts/k8s/manifests/configmap.yamlvanloopbacknaar een niet-loopback-bind die past bij je deploymentmodel - Houd Gateway-authenticatie ingeschakeld en gebruik een correct TLS-getermineerd toegangspunt
- Configureer de Control UI voor externe toegang met het ondersteunde webbeveiligingsmodel (bijvoorbeeld HTTPS/Tailscale Serve en expliciet toegestane origins wanneer nodig)
Opnieuw deployen
Verwijderen
Architectuurnotities
- De Gateway bindt standaard aan loopback binnen de pod, dus de meegeleverde setup is bedoeld voor
kubectl port-forward - Geen clusterbrede resources — alles bevindt zich in één namespace
- Beveiliging:
readOnlyRootFilesystem,drop: ALLcapabilities, niet-rootgebruiker (UID 1000) - De standaardconfiguratie houdt de Control UI op het veiligere pad voor lokale toegang: loopback-bind plus
kubectl port-forwardnaarhttp://127.0.0.1:18789 - Als je verder gaat dan localhost-toegang, gebruik dan het ondersteunde externe model: HTTPS/Tailscale plus de juiste Gateway-bind en origin-instellingen voor de Control UI
- Secrets worden in een tijdelijke directory gegenereerd en rechtstreeks op het cluster toegepast — er wordt geen secretmateriaal naar de repo-checkout geschreven