Architecture · 09 of 19 · Backend fleets

Backend infrastructure: three fleet classes, one contract

Hangar keeps managing agent workloads and their state. Self-hosted model serving is delegated to a separate fleet run by Modelplane, and the only thing Hangar depends on is an OpenAI or Anthropic compatible URL, so hosted providers and Modelplane are interchangeable behind the model proxy.

Backend infrastructure: three fleet classes, one contract Architecture with three cluster classes: a Hangar dev cluster hosting Clearance with the model proxy, agent runs and shared backends; a hub running Modelplane on Crossplane; and dedicated inference clusters with an InferenceGateway, serving replicas and a weight cache; the model proxy reaches hosted providers or the inference gateway through one OpenAI-compatible contract, and the hub is the one place holding the credentials of other clusters. HANGAR CLUSTER · TYPE DEVHUB · TYPE HUBINFERENCE CLUSTERS · TYPE INFERENCEMCP · LLMATTACHOPENAI API · CALLER HEADERMANAGESROUTESWEIGHTSClearance + model proxyInfraService · dev onlyAgent runsephemeral · AgentRun claimsShared backendsPostgres · Redis · queue · MinIOModelplane control planeCrossplane · v1alpha1 · pinnedHosted providersAPI key stays in the proxyInferenceGatewayOpenAI and Anthropic APIsServing stack + replicasvLLM or any engine · GPUWeight cacheModelCache · shared storageThe hub is the only holder of other clusters' credentials, and only for GPU clusters with no app or agent data.LEGENDAgent gateStateOutsideModel APICredential exception

Adopt, do not build

Modelplane is Crossplane-native, written as Python composition functions with no controllers, and splits platform and ML personas the way Hangar does. It also provisions EKS and adopts any cluster (OKE today only by bring-your-own). Its API is v1alpha1 and v0.1, so it sits behind the contract and is pinned.

Where it breaks your principles

  • It holds cluster credentials, against no-cross-cluster-credentials. Contained: its own hub per environment, dedicated cloud accounts, clusters with no app or agent data.
  • It owns each inference cluster and installs Envoy Gateway, so it cannot share a Contour cluster.
  • Its Existing mode takes a kubeconfig Secret, a persisted credential. Unverified: whether short-lived cloud auth works there.

Managed the Hangar way

  • Hub config (InferenceClass, InferenceCluster, ModelDeployment) is durable and lives in git.
  • Replicas and scaling are runtime, derived by Modelplane and KEDA.
  • Cloud and provider keys come from Infisical through External Secrets, never git.
  • New apron cluster types: hub and inference.
Hangar · Autopilot