Por que não usar Helm
O OpenClaw é um único contêiner com alguns arquivos de configuração. A personalização mais relevante está no conteúdo do agente (arquivos Markdown, Skills, substituições de configuração), não na criação de modelos de infraestrutura. O Kustomize gerencia sobreposições sem a sobrecarga de um chart Helm. Adicione um chart Helm sobre esses manifestos se sua implantação se tornar mais complexa.O que você precisa
- Um cluster Kubernetes em execução (AKS, EKS, GKE, k3s, kind, OpenShift etc.)
kubectlconectado ao seu cluster- Uma chave de API para pelo menos um provedor de modelos
Início rápido
deploy.sh cria autenticação por token. Recupere o token gerado do Gateway para a interface de controle:
./scripts/k8s/deploy.sh --show-token exibe o token após a implantação.
Testes locais com Kind
Se você não tiver um cluster, crie um localmente com o Kind:./scripts/k8s/deploy.sh.
Passo a passo
1) Implantar
Opção A: chave de API no ambiente (uma etapa)--show-token a qualquer um dos comandos para exibir o token na saída padrão durante testes locais.
2) Acessar o Gateway
O que é implantado
Personalização
Instruções do agente
Edite oAGENTS.md em scripts/k8s/manifests/configmap.yaml e implante novamente:
Configuração do Gateway
Editeopenclaw.json em scripts/k8s/manifests/configmap.yaml. Consulte Configuração do Gateway para obter a referência completa.
Adicionar provedores
Execute novamente com outras chaves exportadas:Namespace personalizado
Imagem personalizada
Edite o campoimage em scripts/k8s/manifests/deployment.yaml:
Expor além do encaminhamento de porta
Os manifestos padrão vinculam o Gateway ao local loopback dentro do pod. Isso funciona comkubectl port-forward, mas não com um caminho de Service ou Ingress do Kubernetes que precise acessar diretamente o IP do pod.
Para expor o Gateway por meio de um Ingress ou balanceador de carga:
- Altere o vínculo do Gateway em
scripts/k8s/manifests/configmap.yamldeloopbackpara um vínculo que não seja de loopback e corresponda ao seu modelo de implantação. - Mantenha a autenticação do Gateway ativada e use um ponto de entrada adequado com terminação TLS.
- Configure a interface de controle para acesso remoto usando o modelo de segurança da Web compatível (por exemplo, HTTPS/Tailscale Serve e origens permitidas explícitas quando necessário).
Reimplantar
Remoção
Notas de arquitetura
- Por padrão, o Gateway é vinculado ao local loopback dentro do pod, portanto, a configuração incluída destina-se ao uso com
kubectl port-forward. - Não há recursos no escopo do cluster; tudo fica em um único namespace.
- Reforço de segurança:
readOnlyRootFilesystem, recursosdrop: ALLe usuário não raiz (UID 1000). - A configuração padrão mantém a interface de controle no caminho de acesso local mais seguro: vínculo de loopback mais
kubectl port-forwardparahttp://127.0.0.1:18789. - Se você deixar de usar apenas o acesso por localhost, use o modelo remoto compatível: HTTPS/Tailscale, além do vínculo apropriado do Gateway e das configurações de origem da interface de controle.
- Os segredos são gerados em um diretório temporário e aplicados diretamente ao cluster; nenhum material secreto é gravado no checkout do repositório.