Ir al contenido

Grafos

Un entorno. Un fichero.

Varias máquinas con nombre y las aristas que dicen quién llega a quién. Una arista es una autorización, no “la red”.

tienda.yaml
name: tienda
nodes:
db: {from: pg16-golden, ports: [5432], wake: lazy, idle_freeze: 120}
api: {from: api-node, ports: [8081], egress: allowlist, allow_domains: [api.stripe.com]}
web: {from: web-static, ports: [8000]}
edges:
- {from: api, to: db, kind: credential, port: 5432, user: app, database: shop, env: PGPASSWORD, secret_env: SHOP_PG_PASS}
- {from: web, to: api, kind: link, port: 8081}
Ventana de terminal
SHOP_PG_PASS=... kling graph up tienda.yaml

Salida

graph tienda (4f2a9c1e0b7d) up in 412ms
NODE STATE MACHINE WAKE FROM PORTS
api running 9c1e0b7d4f2a eager api-node 8081
db (not started) - lazy pg16-golden 5432
web running 0b7d4f2a9c1e eager web-static 8000
  • Dentro de web, http://api.graph:8081 llega a api.
  • Dentro de api, db.graph:5432 llega a db con la contraseña puesta por el proxy: api solo ve un marcador.
  • db es lazy: no existe hasta el primer psql.
Ventana de terminal
kling graph snapshot tienda -name t0 # una plantilla por nodo, del mismo instante
kling graph fork tienda -n 3 # 3 grafos nuevos que no se ven entre sí
kling graph freeze tienda ; kling graph thaw tienda
kling graph audit tienda -since 10m # cada conexión por arista, en una línea de tiempo

Límites: 32 nodos, 64 aristas.