Skip to content

Backend API

El backend es un único servidor Express (server.js) que proporciona tanto endpoints REST API como conexiones WebSocket.

Estructura del Servidor

js
server.js          // Entrada principal — app Express, rutas K8s, setup WebSocket
routes/
├── aws.js         // Endpoints de servicios AWS
├── gcp.js         // Endpoints de servicios GCP
├── helm.js        // Repositorios Helm, busqueda de charts, instalacion y releases
├── envManager.js  // Gestión de perfiles/credenciales
├── localShell.js  // WebSocket de terminal local
└── systemTools.js // Detección de herramientas CLI

Endpoints REST API

Kubernetes

MétodoRutaDescripción
GET/api/contextsListar todos los contextos kubeconfig
POST/api/contextCambiar contexto activo
DELETE/api/context/:nameEliminar un contexto
GET/api/namespacesListar namespaces
GET/api/:ns/podsListar pods
GET/api/:ns/pods/:name/yamlObtener YAML del pod
DELETE/api/:ns/pods/:nameEliminar pod
POST/api/:ns/deployments/:name/restartReiniciar deployment
POST/api/:ns/deployments/:name/scaleEscalar deployment
POST/api/kubeconfig/importImportar YAML kubeconfig
POST/api/kubeconfig/pathRegistrar una ruta kubeconfig existente
GET/api/:ns/:resource/:name/metricsMetricas para Pods y workloads con fallback Prometheus
GET/api/nodes/:name/metricsMetricas CPU/memoria de Node
GET/api/events/relatedEventos relacionados a un recurso o Node
POST/api/nodes/:name/cordonCordon de nodo
POST/api/nodes/:name/uncordonUncordon de nodo
POST/api/nodes/:name/drainDrain de nodo

Rutas Cloud

PrefijoMóduloDescripción
/api/cloud/awsroutes/aws.jsServicios AWS
/api/cloud/gcproutes/gcp.jsServicios GCP
/api/cloud/envsroutes/envManager.jsGestión de perfiles
/api/systemroutes/systemTools.jsDetección de herramientas CLI
/api/helmroutes/helm.jsRepositorios Helm, busqueda de charts, instalacion, inventario de releases y desinstalacion

Endpoints WebSocket

RutaPropósito
/ws/logsStreaming de logs de pods
/ws/execPod exec (shell interactiva)
/ws/shellShell del sistema local
/ws/ec2-shellShell de instancia EC2 (vía SSH)

Todas las conexiones WebSocket usan modo noServer con enrutamiento de upgrade manual para evitar conflictos entre múltiples instancias WebSocket.Server.

Gestion de Kubeconfig

El servidor fusiona kubeconfigs desde multiples fuentes:

  1. Rutas de la variable KUBECONFIG
  2. Config por defecto ~/.kube/config
  3. Configs importados por UI (~/.kube/kuadashboard_merged.yaml)
  4. Rutas registradas (~/.kube/kuadashboard_paths.json)

La fusion es no destructiva: las entradas existentes no se sobreescriben.

Fallback de Metricas

Las metricas Kubernetes usan primero la API metrics.k8s.io/v1beta1. Si Metrics Server no esta disponible, KuaDashboard detecta Services Prometheus y consulta metricas mediante el Service proxy del API server de Kubernetes, preservando kubeconfig y contexto activos.

Released under the MIT License.