One API. Any inference architecture.
Grove is a Kubernetes API that provides a single declarative interface for orchestrating any AI inference workload — from simple, single-pod deployments to complex multi-node, disaggregated systems. Grove lets you scale your multinode inference deployment from a single replica to data center scale, supporting tens of thousands of GPUs. It allows you to describe your whole inference serving system in Kubernetes - e.g. prefill, decode, routing or any other component - as a single Custom Resource (CR). From that one spec, the platform coordinates hierarchical gang scheduling, topology‑aware placement, multi-level autoscaling and explicit startup ordering. You get precise control of how the system behaves without stitching together scripts, YAML files, or custom controllers.
Get Grove running in 5 minutes on a local kind cluster.
# 1. Create a local kind cluster
cd operator && make kind-up
# 2. Deploy Grove
make deploy
# 3. Deploy your first workload
kubectl apply -f samples/simple/simple1.yaml
# 4. Fetch the resources created by grove
kubectl get pcs,pclq,pcsg,pg,pod -o wide
Follow along with this example in the → Quickstart Doc
For more install options including local and remote K8s clusters, see the → Installation Docs
Modern AI inference workloads need capabilities that Kubernetes natively doesn't provide out-of-the-box:
Grove introduces four simple concepts:
| Concept | Description |
|---|---|
| PodClique | A group of pods representing a specific role (e.g., leader, worker, frontend). Each clique has an independent configuration and supports custom scaling logic. |
| PodCliqueScalingGroup | A set of PodCliques that scale and are scheduled together as a gang. Ideal for tightly coupled roles like prefill leader and worker. |
| PodCliqueSet | The top-level Grove object that defines a group of components managed and colocated together. Also supports autoscaling with topology aware spread of PodCliqueSet replicas for availability. |
| PodGang | The scheduler API that defines a unit of gang-scheduling. A PodGang is a collection of groups of similar pods, where each pod group defines a minimum number of replicas guaranteed for gang-scheduling. |
Get started with a step-by-step hands-on Grove tutorial here → Core Concepts Overview
Refer to all Grove APIs here → API Reference
Please read the contribution guide before creating you first PR!
Grove is an open-source project and we welcome community engagement!
Please feel free to start a discussion thread if you want to discuss a topic of interest.
In case, you have run into any issue or would like a feature enhancement, please create a GitHub Issue with the appropriate tag.
To directly reach out to the Grove user and developer community, please join the NVIDIA Dynamo Discord server, or Grove mailing list.
$ claude mcp add grove \
-- python -m otcore.mcp_server <graph>