Skip to main content
Version: 1.0.0

Cluster Federation

Kamiwaza cluster federation enables cross-cluster operations between paired Kamiwaza clusters. A federated cluster can query remote data, list remote models, and execute compute jobs on its partner — all through a secured mesh proxy with HMAC-signed trust and ReBAC authorization.

Key Concepts

Mesh Proxy — Routes API calls from one cluster to another. The proxy strips the caller's authentication, signs the request with the federation's pre-shared key (PSK) via HMAC-SHA256, and forwards to the remote cluster's Istio ingress gateway. The response streams back transparently.

Federation Trust — Each federation pair shares a pre-shared key. All cross-cluster requests are HMAC-signed with this key. The receiving cluster verifies the signature before processing the request. Trust is per-federation, not per-cluster.

ReBAC Gating — Authorization is enforced on both sides of the federation link:

  • Source cluster: The calling user must have the operator relation on the federation namespace for the target federation
  • Target cluster: The mesh-originated identity is evaluated against standard per-resource ReBAC guards (catalog, retrieval, jobs)

Compute Ships to Data — Raw data never leaves the originating cluster. Only structured results (API responses, job outputs) cross the federation boundary.

What You Can Do

OperationHowWhat Crosses the Network
Query remote catalogGET /api/mesh/{cluster}/api/catalog/datasets/Dataset metadata (names, schemas, URNs)
Retrieve remote dataPOST /api/mesh/{cluster}/api/retrieval/jobsQuery results (rows matching your filter)
List remote modelsGET /api/mesh/{cluster}/api/serving/deploymentsDeployment metadata (model names, status)
Run remote inferencePOST /api/mesh/{cluster}/runtime/models/{id}/v1/chat/completionsInference results
Submit remote jobPOST /api/mesh/{cluster}/cluster/jobs/runStructured job result (MVP+1)

Architecture

Cluster A (source) Cluster B (target)
┌─────────────────────┐ ┌─────────────────────┐
│ User / Kaizen Agent │ │ │
│ │ │ │ │
│ ▼ │ │ │
│ Mesh Proxy │ HMAC-signed │ Istio Gateway │
│ /api/mesh/{cluster}/ │──────────────────▶│ │ │
│ │ @guarded │ HTTPS + mTLS │ ▼ │
│ │ (federation: │ │ ext-authz │
│ │ operator) │ │ │ verify HMAC │
│ │ │ │ │ mint identity │
│ │ │ │ ▼ │
│ │ │ │ @guarded endpoint │
│ │ │ │ │ (standard ReBAC)│
│ │ │ streamed │ ▼ │
│ │◀─────────────────│◀──────────────────│ Service response │
│ │ response │ │ │
└─────────────────────┘ └─────────────────────┘

Prerequisites

  • Two Kamiwaza clusters running on Istio with KAMIWAZA_ROUTING_PROVIDER=istio
  • STRICT mTLS (PeerAuthentication) in both namespaces
  • Network connectivity between clusters on port 443
  • Each cluster's Istio gateway TLS cert must include its node IP in SANs

Federation lifecycle at a glance

StepWhatWhere it's documented
Pair two clustersExchange PSK + CA certs; provision the federation record on both sidesSetup
Allowlist federated usersDecide which remote users can act on this clusterSetup
Query remote dataFederated retrieval over the mesh proxyRetrieval
Submit remote jobsCluster-job execution with on-behalf-of (OBO) identityJob Submission
Apply policy gatesCluster ExecutionGate and per-dataset AttributeGate bindingsExecution Gates
Install custom gatesShip custom policy code as Python packagesGate Packages
Day-2 operationsDiagnose, cancel, revoke, auditOperations

Next Steps