Skip to content

Auto-mesh

import { Callout } from ‘@astrojs/starlight/components’;

Auto-mesh maintains one agent-to-agent test per ordered pair of an operator-defined mesh’s explicit members — so full pairwise visibility between your nodes is one declaration away.

  • A background reconciler (same goroutine pattern as the alert engine) owns the managed tests and records which (source, peer) → test_id mappings it created.
  • Reconciliation diffs by pair, so it’s idempotent and restart-safe — all state lives in the relational store (meshes, mesh_members, managed_tests).
  • The reconciler reuses the normal test create/update/delete path, so control-plane push and result ingestion fire for free.
  • A 30s ticker is the self-healing backstop; mesh CRUD triggers an immediate reconcile.

Members are an explicit node list, not a tag selector.

Manage meshes over REST:

POST /v1/meshes # create a mesh with explicit members
GET /v1/meshes # list meshes
PUT /v1/meshes/{id} # update membership
DELETE /v1/meshes/{id} # tear down managed tests, then remove the mesh

Deleting a mesh tears down its managed tests synchronously before the mesh row, so the mapping stays readable during cleanup.

Operator `DeleteTest` / `UpdateTest` on a managed test is rejected (`PermissionDenied`) — let the reconciler own those.