Las aplicaciones externas no hablan con kubectl ni con Incus. Consumen /api/v1 con una API key. La consola humana (/cluster/) sigue siendo de inspección.
https://streamxe5.fitschile.cl/api/v1
(también /cluster/api/v1).Header X-API-Key o Authorization: Bearer. Roles: viewer (lectura) y operator (deploy). Las keys viven en el Secret de k8s, no en este HTML. Pedilas a quien opera lek.
curl -sS -H "X-API-Key: $CONTROL_API_KEY" \ https://streamxe5.fitschile.cl/api/v1/apps | python3 -m json.tool
| Uso | Método | Path |
|---|---|---|
| Descubrimiento | GET | /api/v1 |
| Catálogo | GET / PUT | /api/v1/catalog |
| Apps + health | GET | /api/v1/apps · /api/v1/apps/{id} |
| Monitoreo | GET | .../pods · .../events · .../logs · .../rollout |
| Cluster | GET | /api/v1/cluster · /api/v1/nodes · /api/v1/workloads |
| Reiniciar | POST | /api/v1/apps/{id}/restart |
| Escalar | POST | /api/v1/apps/{id}/scale |
| Desplegar imagen | POST | /api/v1/apps/{id}/deploy |
| Auditoría | GET | /api/v1/audit |
# dry-run de restart (no borra pods)
curl -sS -H "X-API-Key: $CONTROL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"dry_run":true,"reason":"qa"}' \
https://streamxe5.fitschile.cl/api/v1/apps/etl-manager-pilot/restart
# scale
curl -sS -H "X-API-Key: $CONTROL_API_KEY" \
-H "Content-Type: application/json" \
-d '{"replicas":1,"reason":"keep-one"}' \
https://streamxe5.fitschile.cl/api/v1/apps/inbox-viewer-pilot/scale
# logs
curl -sS -H "X-API-Key: $CONTROL_API_KEY" \
"https://streamxe5.fitschile.cl/api/v1/apps/etl-manager-pilot/logs?tail=80"
cost-pilot. No se acepta YAML arbitrario. La imagen de un deploy tiene que existir ya en los nodos (imagePullPolicy: Never). No se puede dejar la consola en 0 réplicas. I9 / producción no se tocan por esta API.