Protocolos de comunicación
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 también 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, imágenes, 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 ejecución | 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 comunicación:
- Sincronización 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 autenticación 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 cuáles deben correr ahora.
- Hace
GETde las acciones para cada template activo. - Aplica cambios de HPA en el cluster.
- Hace
POSTde eventos de ejecución o rollback hacia la Scaling Rules API.
Protocolo de evaluación de templates
Sección titulada «Protocolo de evaluación 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 ejecución 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 decisión 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.
Límite entre browser y API
Sección titulada «Límite entre browser y API»Los usuarios no llaman directamente a las APIs orientadas al cluster desde el browser. portal.moonin.app y admin.moonin.app quedan detras de límites server-side y aplican el scope del usuario ahi, mientras los agentes autentican como clusters.
