You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: openclaw-helm.html/0.md
+11-7Lines changed: 11 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,6 @@
1
-
If you've been anywhere near Hacker News in the past few weeks, you've probably seen OpenClaw. The project, originally named Clawdbot, then briefly Moltbot before settling on its current name, has exploded in popularity since late last year. It crossed 100,000 GitHub stars and attracted around 2 million visitors in a single week. The hype got so intense that [Cloudflare's stock jumped 14%](https://www.reuters.com/business/cloudflare-surges-viral-ai-agent-buzz-lifts-expectations-2026-01-27/) because people were using their tunnel services to host the tool. Cloudflare even used the opportunity to come up with [Moltworker](https://blog.cloudflare.com/moltworker-self-hosted-ai-agent/), a proof of concept that runs OpenClaw on their Developer Platform using Sandboxes, Browser Rendering, and R2 storage.
1
+
OpenClaw is an open-source AI agent that connects to messaging platforms and acts autonomously. This post covers deploying it on Kubernetes with a Helm chart that supports ArgoCD GitOps, config merge modes, declarative skill installation, network policy isolation, and secrets management.
2
+
3
+
If you've been anywhere near Hacker News in the past few weeks, you've probably seen OpenClaw. The project, originally named Clawdbot, then briefly Moltbot before settling on its current name, has exploded in popularity since late last year. It crossed 100,000 GitHub stars and attracted around 2 million visitors in a single week. The hype got so intense that [Cloudflare's stock jumped 14%](https://www.reuters.com/business/cloudflare-surges-viral-ai-agent-buzz-lifts-expectations-2026-01-27/) because people were using [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/) to host the tool. Cloudflare even used the opportunity to come up with [Moltworker](https://blog.cloudflare.com/moltworker-self-hosted-ai-agent/), a proof of concept that runs OpenClaw on their Developer Platform using Sandboxes, Browser Rendering, and R2 storage.
2
4
3
5
What makes OpenClaw interesting isn't just that it's another AI assistant. It connects to your messaging platforms (WhatsApp, Telegram, Signal, Slack, Discord, and more) and does things autonomously. It's less chatbot, more autonomous agent. Give it a task, let it run, wake up to results.
4
6
@@ -13,6 +15,8 @@ OpenClaw's power comes with real security risks. The tool has shell access, read
13
15
14
16
Running OpenClaw in Kubernetes provides meaningful isolation compared to running it directly on your workstation. Container isolation, network policies, and resource limits contain the blast radius if something goes wrong. Your host filesystem, credentials, and other workloads remain protected behind namespace boundaries. For anyone considering OpenClaw in a work context or handling sensitive data, Kubernetes is the safer option.
15
17
18
+
That said, container isolation and network policies don't make OpenClaw completely safe. The tool still processes untrusted input and executes code inside the container. If a prompt injection leads to code execution, the damage is contained to the pod and whatever network access you've allowed, which is a lot better than having it run on your workstation with access to everything. The goal is minimizing blast radius, not eliminating risk entirely. Treat these measures as layers of defense that make exploitation significantly harder, not as a guarantee that nothing can go wrong.
19
+
16
20
I run Kubernetes for everything in my homelab. When I saw OpenClaw gaining traction, I realized there wasn't a Helm chart available for deploying it. So I built one. Everything in my homelab is declarative, version-controlled in Git, and managed through ArgoCD, that's just how I operate.
17
21
18
22
This post walks through deploying OpenClaw on Kubernetes using [my Helm chart](https://github.com/serhanekicii/openclaw-helm).
@@ -33,7 +37,7 @@ The Helm chart is built on the [bjw-s app-template](https://github.com/bjw-s/hel
33
37
34
38
The chart supports two config modes, controlled by the `configMode` value:
35
39
36
-
-**merge** (default): Helm values are deep-merged with the existing config on the PVC at each restart. Runtime changes made through the web UI—paired devices, settings tweaks, etc.—persist across pod restarts. Your Helm values act as defaults and overrides, but they don't wipe what's already there.
40
+
-**merge** (default): Helm values are deep-merged with the existing config on the PVC at each restart. Runtime changes made through the web UI (paired devices, settings tweaks, and so on) persist across pod restarts. Your Helm values act as defaults and overrides, but they don't wipe what's already there.
37
41
-**overwrite**: strict GitOps. The config file is replaced wholesale on every restart, so the source of truth is purely your Helm values and manifests in Git. Any changes made through the UI are ephemeral.
38
42
39
43
If you want full declarative control with no drift, set `configMode: overwrite`. If you prefer a more forgiving setup where UI changes survive restarts, leave the default.
@@ -166,7 +170,7 @@ openclaw:
166
170
# ... rest of your configuration
167
171
```
168
172
169
-
Update the `openclaw.json` section with your settings—trusted proxies, model provider, timezone, channels, etc.
173
+
Update the `openclaw.json` section with your settings: trusted proxies, model provider, timezone, channels, and so on.
170
174
171
175
Before deploying, verify your chart renders correctly:
172
176
@@ -202,13 +206,13 @@ spec:
202
206
203
207
With `automated` sync enabled, ArgoCD will detect changes and deploy automatically. Any drift gets corrected.
204
208
205
-
This pattern works well with [ApplicationSets](https://argo-cd.readthedocs.io/en/latest/user-guide/application-set/) too. You can have ArgoCD automatically discover and deploy any chart in the `workloads/` directory based on path patterns. For more on ArgoCD with Helm charts, see their [Helm documentation](https://argo-cd.readthedocs.io/en/stable/user-guide/helm/).
209
+
This pattern works well with [ApplicationSets](https://argo-cd.readthedocs.io/en/latest/user-guide/application-set/) too. You can have ArgoCD automatically discover and deploy any chart in the `workloads/` directory based on path patterns. If you want a broader overview of managing multiple applications, the [App of Apps pattern](https://argo-cd.readthedocs.io/en/latest/operator-manual/cluster-bootstrapping/#app-of-apps-pattern-alternative) is worth looking at as well. For more on ArgoCD with Helm charts, see their [Helm documentation](https://argo-cd.readthedocs.io/en/stable/user-guide/helm/).
206
210
207
211
### Secrets Management
208
212
209
213
OpenClaw needs API keys and tokens to function. How you manage these depends on your setup.
210
214
211
-
If you run HashiCorp Vault (which I do), the [Vault Secrets Operator](https://developer.hashicorp.com/vault/docs/platform/k8s/vso) handles syncing secrets to Kubernetes. Store your credentials in Vault at a path like `secret/openclaw/env`, then create a VaultStaticSecret. In the umbrella chart pattern, I keep these manifests in a `crds/` directory alongside the chart. ArgoCD will apply them before the Helm release:
215
+
If you run HashiCorp Vault (or its Linux Foundation fork [OpenBao](https://openbao.org/)), the [Vault Secrets Operator](https://developer.hashicorp.com/vault/docs/platform/k8s/vso) handles syncing secrets to Kubernetes. Store your credentials in Vault at a path like `secret/openclaw/env`, then create a VaultStaticSecret. In the umbrella chart pattern, I keep these manifests in a `crds/` directory alongside the chart. ArgoCD will apply them before the Helm release:
212
216
213
217
```yaml
214
218
apiVersion: secrets.hashicorp.com/v1beta1
@@ -278,7 +282,7 @@ For TLS termination and DNS automation (using tools like [cert-manager](https://
278
282
279
283
### Network Policy Isolation
280
284
281
-
Given OpenClaw's security profile—shell access, file reads, untrusted input processing—network policies add an important layer of defense. Even if the application gets compromised, network policies limit what an attacker can reach from within the pod.
285
+
Given that OpenClaw has shell access, reads files, and processes untrusted input, network policies add an important layer of defense. Even if the application gets compromised, network policies limit what an attacker can reach from within the pod.
282
286
283
287
The Helm chart includes a network policy that's disabled by default. Enable it in your values:
284
288
@@ -346,7 +350,7 @@ openclaw:
346
350
port: 11434
347
351
```
348
352
349
-
Note that network policies require a CNI that supports them—Calico, Cilium, and Weave all work. If you're running Flannel without the network policy controller, policies will be created but not enforced.
353
+
Make sure your CNI plugin supports network policies (Calico, Cilium, etc.), otherwise the policies will be created but not enforced.
Copy file name to clipboardExpand all lines: openclaw-helm.html/conf
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
-
title="Running OpenClaw on Kubernetes"
2
-
description="OpenClaw is powerful but risky—shell access, untrusted input, and third-party skills create real attack surfaces. This guide covers deploying OpenClaw on Kubernetes with Helm and ArgoCD, where container isolation and network policies contain the blast radius."
1
+
title="Deploying OpenClaw on Kubernetes with Helm"
2
+
description="OpenClaw is powerful but risky. Shell access, untrusted input, and third-party skills create real attack surfaces. This guide covers deploying OpenClaw on Kubernetes with Helm and ArgoCD, where container isolation and network policies contain the blast radius."
0 commit comments