Many Trino clusters become platform work
The hard part is no longer only running a query engine. It is repeating routing, catalogs, secrets, workers, lifecycle policy, and isolation for every team.
Product
XTrinode lets data platform teams keep Trino as the query engine while turning each team or workload into a named Kubernetes runtime with routing, catalogs, scaling, lifecycle, and status.
The point is not another SQL engine. The point is the missing platform layer around many Trino runtimes: one gateway entrypoint, declarative runtime intent, reusable catalogs, elastic workers, and clear isolation boundaries.
Isolated runtimes with coordinators, workers, catalogs, and optional node pools.
XTrinode is the layer that turns repeated Trino cluster operations into one declarative runtime model.
The hard part is no longer only running a query engine. It is repeating routing, catalogs, secrets, workers, lifecycle policy, and isolation for every team.
An XTrinode resource names the team or workload and carries size, worker bounds, suspend intent, route identity, catalog selection, and optional node-pool intent.
The operator turns the runtime into Kubernetes resources and status. The API server coordinates lifecycle calls. The gateway keeps SQL traffic pointed at usable backends.
Idle runtimes can autosuspend, first query demand can resume them, and worker pools can stay fixed or follow KEDA signals such as gateway-observed query pressure.
Platform Shift
Standalone Trino deployments repeat the same platform work: Services, routing, worker counts, catalog files, secrets, scaling hooks, resource boundaries, and runbooks.
XTrinode makes that work a repeatable runtime model that can be reviewed, reconciled, observed, and evolved.
A team asks for named Trino compute with size, routing, catalogs, and lifecycle intent.
The operator renders coordinators, workers, Services, catalog mounts, KEDA objects, and route state.
The gateway sends SQL traffic to the right runtime by hostname, header, default route, or shared pool.
The platform can resize, suspend, resume, isolate, observe, and delete runtimes from declared state.
XTrinode keeps Trino as the engine and adds the operating layer needed for many isolated, routable, lifecycle-aware runtimes.
XTrinode handles runtime creation, updates, status, suspend, resume, and cleanup through Kubernetes reconciliation instead of one-off deployment work.
Hostname, header, default-route, and shared-pool routing are built in, with sticky query continuation and backend state enforcement.
Autosuspend and gateway/API resume make disposable Trino compute practical for bursty BI, ETL, and ad hoc workloads.
XTrinodeCatalog keeps connector configuration and Secret-backed properties separate from runtime lifecycle and team sizing.
Teams can stay fixed for predictable capacity or use KEDA from gateway-observed query pressure when demand changes.
Namespaces, routes, catalogs, limits, size presets, and optional provider node pools give platform teams clearer ownership and chargeback.
Cluster Pieces
The operator owns desired state, the API server owns coordinated lifecycle calls, and the gateway owns Trino-facing routing. Runtime resources remain visible Kubernetes objects rather than hidden service state.
Provider material is explicit about validation depth so platform teams can choose the right deployment path.
| Provider path | Current posture | Notes |
|---|---|---|
| GCP / GKE / CAPG | Fully exercised cloud path | Terraform, deploy automation, CAPG bootstrap, managed node-pool smoke coverage, and KEDA/resume smoke coverage. |
| AWS / EKS / CAPA | Experimental provider-validation path | Terraform, registry/deploy material, API-server auth wiring, and unit-tested node-pool resource generation exist. |
| Azure / AKS / CAPZ | Experimental provider-validation path | Terraform, registry/deploy material, API-server auth wiring, and unit-tested node-pool resource generation exist. |
Runtime Intent
The control plane is installed once. Workload teams request runtime compute with Kubernetes resources and route SQL through the gateway.
apiVersion: analytics.xtrinode.io/v1
kind: XTrinode
metadata:
name: runtime-a
namespace: team-a
spec:
size: s
minWorkers: 0
maxWorkers: 2
suspended: false
routing:
header: X-Trino-XTrinode=team-a/runtime-a