Perché non Helm
OpenClaw è un singolo container con alcuni file di configurazione. La personalizzazione più rilevante riguarda i contenuti dell’agente (file Markdown, Skills, sostituzioni della configurazione), non i modelli dell’infrastruttura. Kustomize gestisce le sovrapposizioni senza il sovraccarico di un chart Helm. Se la distribuzione diventa più complessa, è possibile aggiungere un chart Helm sopra questi manifest.Requisiti
- Un cluster Kubernetes in esecuzione (AKS, EKS, GKE, k3s, kind, OpenShift, ecc.)
kubectlconnesso al cluster- Una chiave API per almeno un fornitore di modelli
Avvio rapido
deploy.sh crea l’autenticazione tramite token. Recuperare il token del Gateway generato per l’interfaccia di controllo:
./scripts/k8s/deploy.sh --show-token stampa il token dopo la distribuzione.
Test locale con Kind
Se non si dispone di un cluster, crearne uno localmente con Kind:./scripts/k8s/deploy.sh.
Procedura dettagliata
1) Distribuzione
Opzione A: chiave API nell’ambiente (un solo passaggio)--show-token a uno dei comandi per stampare il token su stdout durante i test locali.
2) Accesso al Gateway
Risorse distribuite
Personalizzazione
Istruzioni dell’agente
ModificareAGENTS.md in scripts/k8s/manifests/configmap.yaml e ridistribuire:
Configurazione del Gateway
Modificareopenclaw.json in scripts/k8s/manifests/configmap.yaml. Consultare Configurazione del Gateway per il riferimento completo.
Aggiunta di fornitori
Eseguire nuovamente i comandi dopo aver esportato le chiavi aggiuntive:Spazio dei nomi personalizzato
Immagine personalizzata
Modificare il campoimage in scripts/k8s/manifests/deployment.yaml:
Esposizione oltre il port forwarding
I manifest predefiniti associano il Gateway al local loopback all’interno del pod. Questa configurazione funziona conkubectl port-forward, ma non con un Service Kubernetes o un percorso Ingress che debba raggiungere direttamente l’indirizzo IP del pod.
Per esporre il Gateway tramite un Ingress o un bilanciatore del carico:
- Modificare l’associazione del Gateway in
scripts/k8s/manifests/configmap.yamldaloopbacka un’associazione non loopback compatibile con il proprio modello di distribuzione. - Mantenere abilitata l’autenticazione del Gateway e utilizzare un punto di ingresso appropriato con terminazione TLS.
- Configurare l’interfaccia di controllo per l’accesso remoto utilizzando il modello di sicurezza web supportato (ad esempio HTTPS/Tailscale Serve e origini consentite esplicite, quando necessarie).
Ridistribuzione
Rimozione
Note sull’architettura
- Per impostazione predefinita, il Gateway è associato al local loopback all’interno del pod, quindi la configurazione inclusa è destinata a
kubectl port-forward. - Non vengono utilizzate risorse con ambito cluster; tutto risiede in un singolo spazio dei nomi.
- Rafforzamento della sicurezza:
readOnlyRootFilesystem, funzionalitàdrop: ALL, utente non root (UID 1000). - La configurazione predefinita mantiene l’interfaccia di controllo sul percorso di accesso locale più sicuro: associazione al loopback più
kubectl port-forwardversohttp://127.0.0.1:18789. - Se si estende l’accesso oltre localhost, utilizzare il modello remoto supportato: HTTPS/Tailscale insieme all’associazione appropriata del Gateway e alle impostazioni delle origini dell’interfaccia di controllo.
- I segreti vengono generati in una directory temporanea e applicati direttamente al cluster; nessun materiale segreto viene scritto nel checkout del repository.