Este guia percorre o início rápido com mock local: um cluster de infraestrutura kind executando
Cluster API + CAPD representa a infraestrutura real, para que você possa implantar um
App e escalá-lo para novas máquinas inteiramente no seu laptop.
Pré-requisitos
Docker (OrbStack funciona), Go 1.25+, kubectl, kind, clusterctl.
1. Levante o substrato mock
# kind infra cluster + Cluster API + CAPD, plus an app cluster whose
# nodes are Docker containers
bash scripts/mock-cluster.sh # writes infra/local/bex.kubeconfig
export KUBECONFIG=$PWD/infra/local/bex.kubeconfig2. Compile e implante o operador
( cd lego/operator && make docker-build IMG=bex-operator:dev )
docker save bex-operator:dev -o /tmp/bex-op.tar
for n in $(kubectl get nodes -o name | sed 's|node/||'); do
docker cp /tmp/bex-op.tar "$n":/op.tar && docker exec "$n" ctr -n k8s.io images import /op.tar
done
( cd lego/operator && make deploy IMG=bex-operator:dev ) # ns bex-system, BEX_RUNTIME=kubernetesClusters CAPD locais precisam que o operador seja fixado ao nó do plano de controle:
kubectl -n bex-system patch deploy bex-controller-manager --type merge -p \
'{"spec":{"template":{"spec":{"nodeSelector":{"node-role.kubernetes.io/control-plane":""},
"tolerations":[{"key":"node-role.kubernetes.io/control-plane","effect":"NoSchedule"}]}}}}'
kubectl -n bex-system rollout status deploy/bex-controller-manager3. Implante um App
kubectl apply -f examples/whoami-app.yaml
kubectl get pods -l app.bex.co/app=whoami -o wideexamples/whoami-app.yaml executa uma imagem pré-compilada (traefik/whoami) — veja
Recurso App / bex.yml para todos os campos, incluindo
build a partir do git.
4. Adicione uma máquina e depois escale para ela
bash scripts/mock-cluster.sh scale 2
kubectl patch apps.app.bex.co whoami --type merge -p '{"spec":{"replicas":6}}'kubectl get apps.app.bex.co mostra phase / revision / url sendo atualizados conforme
o operador empacota as novas réplicas em ambas as máquinas.
Implante no Hetzner
Mesmo bex, provedor de infraestrutura diferente — troque o overlay do Cluster API
de infra/clusterapi/overlays/local-capd para
infra/clusterapi/overlays/hetzner-caph. Veja
infra/README.md
no repositório para o runbook completo.