Protocolos de comunicacion
Los agentes actuales de Moonin se comunican con el control plane por HTTPS usando credenciales acotadas al cluster.
Credenciales y headers
Sección titulada «Credenciales y headers»Ambos agentes reciben estos valores desde el Secret compartido creado por el chart:
PROJECT_IDCLUSTER_IDCLUSTER_TOKEN
El cluster token se envia en los requests agente-a-plataforma a traves del header X-Cluster-Token. Algunas llamadas internas del Discovery Agent tambien incluyen un bearer header por compatibilidad, pero el modelo de confianza sigue siendo cluster-scoped, no user-scoped.
Destinos principales
Sección titulada «Destinos principales»| Flujo | Destino | Usado por | Objetivo |
|---|---|---|---|
| Sync de inventario | api-discover.moonin.app |
Discovery Agent | namespaces, Deployments, revisiones, errores, imagenes, HPAs, CronJobs y nodos |
| Heartbeat del cluster | api-discover.moonin.app |
Discovery Agent | disponibilidad del cluster y cloud metadata |
| Polling de templates | api-scaling-rules.moonin.app |
Scaling Rules Agent | listar templates del cluster |
| Polling de acciones | api-scaling-rules.moonin.app |
Scaling Rules Agent | cargar acciones para un template activo |
| Eventos de ejecucion | api-scaling-rules.moonin.app |
Scaling Rules Agent | notificar apply y revert |
Modelo de requests del Discovery Agent
Sección titulada «Modelo de requests del Discovery Agent»El Discovery Agent usa dos patrones de comunicacion:
- Sincronizacion inicial para namespaces, Deployments y CronJobs cuando parte el lider.
- Envios en estado estable disparados por informers y loops periodicos.
Flujo de alto nivel:
- Leer recursos desde la API de Kubernetes.
- Normalizar y sanitizar el payload cuando corresponde.
- Enviar por lotes cuando aplica.
- Publicar el resultado a la Discovery API usando autenticacion del cluster.
Modelo de requests del Scaling Rules Agent
Sección titulada «Modelo de requests del Scaling Rules Agent»El Scaling Rules Agent corre un reconcile fijo cada 30 segundos:
- Hace
GETde los templates disponibles para el cluster. - Evalua cuales deben correr ahora.
- Hace
GETde las acciones para cada template activo. - Aplica cambios de HPA en el cluster.
- Hace
POSTde eventos de ejecucion o rollback hacia la Scaling Rules API.
Protocolo de evaluacion de templates
Sección titulada «Protocolo de evaluacion de templates»La plataforma entrega la metadata del template y el agente evalua:
- si el template esta habilitado
- si la hora actual sigue antes de
valid_until - si una ejecucion manual esta marcada como
running - si la hora actual cae dentro de la ventana programada en la timezone configurada
Eso significa que el control plane define el template, mientras que el agente del cluster toma la decision final de “corre ahora o no” para ese cluster y ese momento.
Lookups de cloud metadata
Sección titulada «Lookups de cloud metadata»Antes de enviar metadata del cluster, el Discovery Agent puede consultar endpoints de metadata del cloud o derivar contexto desde labels de nodos. Esto ayuda a clasificar el cluster como GKE, EKS, AKS o un entorno desconocido u on-prem.
Limite entre browser y API
Sección titulada «Limite entre browser y API»Los usuarios no llaman directamente a las APIs orientadas al cluster desde el browser. app.moonin.app y app-admin.moonin.app quedan detras de limites server-side y aplican el scope del usuario ahi, mientras los agentes autentican como clusters.