Helm क्यों नहीं?
OpenClaw कुछ config files वाला एक single container है। मुख्य customization agent content (markdown files, skills, config overrides) में है, infrastructure templating में नहीं। Kustomize Helm chart के overhead के बिना overlays संभालता है। अगर आपका deployment अधिक जटिल हो जाता है, तो इन manifests के ऊपर Helm chart की layer जोड़ी जा सकती है।आपको क्या चाहिए
- चल रहा Kubernetes cluster (AKS, EKS, GKE, k3s, kind, OpenShift, आदि)
- आपके cluster से जुड़ा
kubectl - कम से कम एक model provider के लिए API key
Quick start
./scripts/k8s/deploy.sh --show-token deploy के बाद token print करता है।
Kind के साथ local testing
अगर आपके पास cluster नहीं है, तो Kind के साथ locally एक बनाएं:./scripts/k8s/deploy.sh के साथ deploy करें।
Step by step
1) Deploy
Option A — environment में API key (एक step):--show-token का उपयोग करें।
2) Gateway access करें
क्या deploy होता है
Customization
Agent instructions
scripts/k8s/manifests/configmap.yaml में AGENTS.md edit करें और redeploy करें:
Gateway config
scripts/k8s/manifests/configmap.yaml में openclaw.json edit करें। पूरी reference के लिए Gateway configuration देखें।
Providers जोड़ें
Additional keys export करके फिर से चलाएं:Custom namespace
Custom image
scripts/k8s/manifests/deployment.yaml में image field edit करें:
Port-forward से आगे expose करें
Default manifests gateway को pod के अंदर loopback से bind करते हैं। यहkubectl port-forward के साथ काम करता है, लेकिन ऐसे Kubernetes Service या Ingress path के साथ काम नहीं करता जिसे pod IP तक पहुंचना होता है।
अगर आप gateway को Ingress या load balancer के through expose करना चाहते हैं:
scripts/k8s/manifests/configmap.yamlमें gateway bind कोloopbackसे बदलकर अपने deployment model से matching non-loopback bind करें- Gateway auth enabled रखें और proper TLS-terminated entrypoint का उपयोग करें
- Supported web security model का उपयोग करके remote access के लिए Control UI configure करें (उदाहरण के लिए HTTPS/Tailscale Serve और जरूरत होने पर explicit allowed origins)
Re-deploy
Teardown
Architecture notes
- Gateway default रूप से pod के अंदर loopback से bind होता है, इसलिए included setup
kubectl port-forwardके लिए है - कोई cluster-scoped resources नहीं — सब कुछ एक single namespace में रहता है
- Security:
readOnlyRootFilesystem,drop: ALLcapabilities, non-root user (UID 1000) - Default config Control UI को safer local-access path पर रखता है: loopback bind plus
kubectl port-forwardtohttp://127.0.0.1:18789 - अगर आप localhost access से आगे बढ़ते हैं, तो supported remote model का उपयोग करें: HTTPS/Tailscale plus appropriate gateway bind and Control UI origin settings
- Secrets temp directory में generate होते हैं और directly cluster पर apply किए जाते हैं — repo checkout में कोई secret material नहीं लिखा जाता