What changes when open-source Run:ai sits on your GPU stack
On 13 October NVIDIA released Run:ai as open source under the Apache 2.0 licence. The whole platform is in one repository, dsx-ai-factory/run-ai. NVIDIA also lists four of its components that “can also be adopted independently”: KAI Scheduler, the GPU Fractioning Operator, KAI Resource Management (KRM) and Workload Map.
Because the components can be adopted one at a time, a team can start with the scheduler and add the rest when it needs it.
A platform I architected and manage already runs three of them on their own: KAI Scheduler, KRM and the GPU Fractioning Operator. It is a DSX-style AI factory deployment, built along the lines of the NVIDIA DSX AI Factory Platform. DSX is NVIDIA’s blueprint for designing, building and operating AI factories, from facility reference designs, power and cooling up to DSX OS, the open-source software that operates them. In DSX OS, KAI Scheduler and Run:ai provide the GPU-aware workload placement, with fractional allocation and hierarchical quotas.

The platform runs them on Kubernetes, with tenancy kept in git. I have written about its KRM departments and quotas and fractional GPUs under KAI. On a platform like that, adopting Run:ai doesn’t replace the scheduler. It adds a control plane above it, with self-service, policies and reporting.
This post compares open-source Run:ai with my own environment: what changes, when each design fits, and what migrating would take. It is my assessment, not NVIDIA guidance.
My starting point: KAI and KRM on their own
The platform I architected and manage models tenancy like this, with every object in git:
- a team or research group is a KRM Department, with a guaranteed share of each GPU pool
- a Project is one namespace
- GPU classes are node pools
- an admission policy refuses any GPU pod that doesn’t name the KAI scheduler
A GitOps tool such as Argo CD applies those objects from the repository. There is no API or UI for departments, projects and quotas, and no common set of workload types across notebook workspaces, agent sandboxes and batch jobs. Every quota change is a pull request, and KRM accepts quota splits that don’t add up, which is why I wrote a planner to check them before the pull request merges.
The scheduler stays the same
Run:ai comes as two installs: a control plane with the UI, the REST API, its own database and its own Keycloak, and a cluster install on each Kubernetes cluster that runs workloads.

The cluster install brings the scheduling stack with it: each Run:ai release ships KRM, KAI Scheduler and the GPU Fractioning Operator together. These are the components a standalone platform already runs. Department guarantees, over-quota borrowing, reclaim and GPU fractions run the same code, so they should behave the same way. That still needs testing on Run:ai’s pinned versions, and it is the second check further down.
Run:ai adds the layer above the scheduler. Without it, a platform that wants self-service tenancy has to build that layer itself: a governance console and a controller that writes KRM objects from a UI. Building it keeps one Keycloak and keeps tenancy in git. It also leaves the team maintaining an API, a UI and workload types that Run:ai already ships. Until October the alternative to building it was a commercial licence. Now the source is open under Apache 2.0.
Enterprise support stays a commercial offering. NVIDIA says the free Community Product needs no paid subscription and that “NVIDIA enterprise support is not included”, and supported Run:ai is available through NVIDIA’s commercial offerings. A team can start on the community version and decide on support once the platform carries production work.
What moves in the architecture
The scheduling stack doesn’t change: KAI Scheduler, KRM and the GPU Fractioning Operator run the same code before and after. What moves is tenancy. Departments, projects and access rules leave git and Argo CD and live in the Run:ai control plane and its PostgreSQL database, which becomes what has to be backed up. Identity splits in two: the existing Keycloak still signs people in, and Run:ai’s own Keycloak and access rules decide what they may do.

When Run:ai is the better choice, and when the bespoke stack is
What separates the two designs is everything above the scheduler. On its own, KRM is a set of CRDs with no UI or API, and access control is plain Kubernetes RBAC.


On the Run:ai side, self-service is the biggest gain: researchers get notebooks, jobs and their own projects without waiting on the platform team. On the bespoke side, the biggest reason is tenancy in git. The Run:ai control plane manages departments and projects and syncs them to each cluster, so Argo CD can’t apply them as it applies KRM objects. The route that keeps tenancy in git is a pipeline that calls the REST API with a service account, and review, history and rollback of quota changes then live in that pipeline.
What migrating my environment would take
Moving the platform I’m responsible for to Run:ai is mostly preparation. Departments, projects and node pools map one to one, so recreating them is a translation rather than a redesign.

A test environment built from production’s repository makes the quota and GPU-sharing check meaningful, because the tests then run against the same tenancy objects production uses.
Order of adoption
NVIDIA’s choice to release the components separately is what makes our path possible. We run KAI and KRM on their own today, and that is what I would recommend to a team that needs GPU sharing now. The departments, projects and node pools built that way carry over when the control plane arrives. The tenancy model is the decision to make before installing it.
The open-source release turns Run:ai from a licensing decision into a design decision. Both paths run NVIDIA’s scheduler, and a platform can start with one and grow into the other. If you are weighing the same move, I would like to hear how you plan to handle tenancy and support.