| # Local Laptop Kubernetes Control with FastAPI |
|
|
| This guide uses your local manifest [deploy/local-laptop.yaml](deploy/local-laptop.yaml) and a lightweight server [server/local_laptop_control.py](server/local_laptop_control.py). |
|
|
| ## 1) Deploy local workloads |
|
|
| ```powershell |
| kubectl apply -f deploy/local-laptop.yaml |
| kubectl get deploy -n prod-sre |
| ``` |
|
|
| Expected deployments: |
| - `auth` |
| - `cart` |
| - `catalog` |
| - `checkout` |
| - `payments` |
|
|
| ## 2) Set required environment variables |
|
|
| The controller requires `KUBECONFIG` and `ANTIATROPOS_WORKLOAD_MAP`. |
|
|
| ```powershell |
| $env:KUBECONFIG = "$HOME/.kube/config" |
| $env:ANTIATROPOS_K8S_NAMESPACE = "prod-sre" |
| $env:ANTIATROPOS_MIN_REPLICAS = "1" |
| $env:ANTIATROPOS_MAX_REPLICAS = "" # empty => unbounded scale-up |
| $env:ANTIATROPOS_SCALE_STEP = "3" |
| $env:ANTIATROPOS_WORKLOAD_MAP = '{"node-0":{"deployment":"payments","namespace":"prod-sre"},"node-1":{"deployment":"checkout","namespace":"prod-sre"},"node-2":{"deployment":"catalog","namespace":"prod-sre"},"node-3":{"deployment":"cart","namespace":"prod-sre"},"node-4":{"deployment":"auth","namespace":"prod-sre"}}' |
| ``` |
|
|
| If you already have these in [.env](.env), load them first. |
|
|
| ## 3) Start lightweight FastAPI server |
|
|
| ```powershell |
| uvicorn server.local_laptop_control:app --host 0.0.0.0 --port 8010 |
| ``` |
|
|
| ## 4) Validate server health |
|
|
| ```powershell |
| Invoke-RestMethod http://localhost:8010/health |
| ``` |
|
|
| Check: |
| - `is_mock` should be `False` |
| - `mapped_targets` should include `node-0`..`node-4` |
|
|
| ## 5) Let your agent execute actions |
|
|
| The server accepts `POST /step` with: |
| - `action_type`: `NO_OP` | `SCALE_UP` | `SCALE_DOWN` | `REROUTE_TRAFFIC` | `SHED_LOAD` |
| - `target_node_id`: `node-*` |
| - `parameter`: float |
|
|
| Example: |
|
|
| ```powershell |
| Invoke-RestMethod -Method Post -Uri http://localhost:8010/step -ContentType "application/json" -Body '{"action_type":"SCALE_UP","target_node_id":"node-3","parameter":0.6}' |
| ``` |
|
|
| ## 6) Verify Kubernetes effect |
|
|
| ```powershell |
| kubectl get deploy cart -n prod-sre |
| kubectl get deploy -n prod-sre |
| ``` |
|
|
| ## Notes |
|
|
| - This controller is intentionally minimal and does not provide simulator rewards. |
| - It is suitable for direct action execution tests from your agent. |
| - If you need OpenEnv-compatible `/reset` + `/step` + reward loop, use [server/app.py](server/app.py) in `aws` mode. |
|
|