Skip to main content

Tower Two-Node Cluster Deploy

Deploy AlphaSwarm to the dedicated two-node cluster (alphaswarm-tower control plane + alphaswarm-laptop WSL2 agent) before any portal migration work.

Scope​

  • In scope: AlphaSwarm stack bootstrap (tower-dev), QuestDB, control-plane wiring.
  • Out of scope: julianwiley-portal migration (deferred; owned by rpi_kubernetes).

Prerequisites​

  • Two-node cluster already online and kubectl get nodes shows both Ready.
  • Context points to the tower cluster.
  • Entra (Azure AD) tenant + client values set in alphaswarm_platform/deployments/kubernetes/base/configmaps (Auth0 has been retired org-wide; identity is Entra-only — ALPHASWARM_AUTH_PROVIDER: msal_entra in configmaps/alphaswarm-config.yaml).
  • Secrets rendered for:
    • alphaswarm-secrets (alphaswarm namespace)
    • alphaswarm-admin-secrets (alphaswarm-admin namespace)

1) Install cluster dependencies​

bash alphaswarm_platform/scripts/cluster_install/install-redpanda.sh
bash alphaswarm_platform/scripts/cluster_install/install-questdb.sh
bash alphaswarm_platform/scripts/cluster_install/install-redpanda-connect.sh

Optional (if your target slice needs them): OpenTelemetry, kube-prometheus-stack, Phoenix, Spark Operator.

2) Apply the thin tower overlay​

kubectl apply -k alphaswarm_platform/deployments/kubernetes/overlays/tower-dev/

This slice includes:

  • core workloads (alphaswarm-core, alphaswarm-worker, alphaswarm-executor, alphaswarm-client, alphaswarm-cp)
  • redis-master
  • postgres-shared
  • questdb (dev-sized PVC, relaxed scheduling)

3) Verify​

bash alphaswarm/scripts/verify_tower_cluster.sh

(The script lives in the alphaswarm monolith checkout, not alphaswarm_platform — adjust the path if your workspace root differs.)

python -m alphaswarm.cli.main deploy is now a legacy shim that forwards to alphaswarm-cli deploy (workspace-based, monolith-API-driven) and has no --target/--action flags. The tower cluster's actual Terraform stack is a plain environment under alphaswarm_platform/terraform/environments/tower/:

# Preview
cd alphaswarm_platform/terraform/environments/tower
terraform init
terraform plan

# Apply
terraform apply

Rollback​

kubectl delete -k alphaswarm_platform/deployments/kubernetes/overlays/tower-dev/

Then restore the previous known-good overlay or Terraform state.