Perché non Helm?
OpenClaw è un singolo container con alcuni file di configurazione. La personalizzazione interessante riguarda i contenuti degli agenti (file markdown, skills, override di configurazione), non il templating dell’infrastruttura. Kustomize gestisce gli overlay senza il sovraccarico di un chart Helm. Se la tua distribuzione diventa più complessa, un chart Helm può essere aggiunto sopra questi manifest.Cosa ti serve
- Un cluster Kubernetes in esecuzione (AKS, EKS, GKE, k3s, kind, OpenShift, ecc.)
kubectlconnesso al tuo cluster- Una chiave API per almeno un provider di modelli
Avvio rapido
./scripts/k8s/deploy.sh --show-token stampa il token dopo la distribuzione.
Test locale con Kind
Se non hai un cluster, creane uno localmente con Kind:./scripts/k8s/deploy.sh.
Passo dopo passo
1) Distribuisci
Opzione A — chiave API nell’ambiente (un passaggio):--show-token con uno dei due comandi se vuoi che il token venga stampato su stdout per i test locali.
2) Accedi al gateway
Cosa viene distribuito
Personalizzazione
Istruzioni per gli agenti
ModificaAGENTS.md in scripts/k8s/manifests/configmap.yaml e ridistribuisci:
Configurazione del Gateway
Modificaopenclaw.json in scripts/k8s/manifests/configmap.yaml. Consulta Configurazione del Gateway per il riferimento completo.
Aggiungi provider
Esegui di nuovo con chiavi aggiuntive esportate:Namespace personalizzato
Immagine personalizzata
Modifica il campoimage in scripts/k8s/manifests/deployment.yaml:
Esporre oltre il port-forward
I manifest predefiniti collegano il gateway al loopback all’interno del pod. Questo funziona conkubectl port-forward, ma non funziona con un Service Kubernetes o un percorso Ingress che deve raggiungere l’IP del pod.
Se vuoi esporre il gateway tramite un Ingress o un load balancer:
- Cambia il bind del gateway in
scripts/k8s/manifests/configmap.yamldaloopbacka un bind non-loopback che corrisponda al tuo modello di distribuzione - Mantieni abilitata l’autenticazione del gateway e usa un entrypoint appropriato con terminazione TLS
- Configura la Control UI per l’accesso remoto usando il modello di sicurezza web supportato (ad esempio HTTPS/Tailscale Serve e origini consentite esplicite quando necessario)
Ridistribuzione
Rimozione
Note sull’architettura
- Il gateway si collega al loopback all’interno del pod per impostazione predefinita, quindi la configurazione inclusa è per
kubectl port-forward - Nessuna risorsa con ambito cluster: tutto risiede in un singolo namespace
- Sicurezza:
readOnlyRootFilesystem, funzionalitàdrop: ALL, utente non root (UID 1000) - La configurazione predefinita mantiene la Control UI sul percorso di accesso locale più sicuro: bind loopback più
kubectl port-forwardversohttp://127.0.0.1:18789 - Se vai oltre l’accesso localhost, usa il modello remoto supportato: HTTPS/Tailscale più il bind gateway appropriato e le impostazioni di origine della Control UI
- I secret vengono generati in una directory temporanea e applicati direttamente al cluster: nessun materiale segreto viene scritto nel checkout del repo