The Red Hat Ecosystem Catalog is the official source for discovering and learning more about the Red Hat Ecosystem of both Red Hat and certified third-party products and services.
We’re the world’s leading provider of enterprise open source solutions—including Linux, cloud, container, and Kubernetes. We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.
The Furiosa Device Plugin implements the Kubernetes Device Plugin interface for FuriosaAI NPU devices. It makes FuriosaAI NPUs available as schedulable resources in a Kubernetes cluster so that AI workloads can request and run on them. Its main responsibilities are:
The plugin runs on every node that has FuriosaAI NPUs, advertises the devices to the kubelet, and re-registers itself automatically when the kubelet restarts. Once it is running, pods can request NPUs through normal resource requests and limits using the resource names described below.
A single FuriosaAI NPU card can be exposed either as one whole resource or split into multiple smaller resources through partitioning. The partitioning mode determines both the resource name and how many units each card provides:
| NPU Configuration | Resource Name | Resource Count Per Card |
| none | furiosa.ai/rngd | 1 |
| 2core.12gb | furiosa.ai/rngd-2core.12gb | 2 |
| 4core.24gb | furiosa.ai/rngd-4core.24gb | 4 |
Only the RNGD architecture supports partitioning. If a partitioning mode is configured on a Warboy device, the device plugin will not start.
The container image is based on a distroless base image and ships the device plugin binary together with the FuriosaAI shared library it depends on (libfuriosa_smi). It requires access to the FuriosaAI NPU devices and to the kubelet device plugin socket path on the host. The project is licensed under the Apache License, Version 2.0.
The following information was extracted from the dockerfile and other sources.
| Canonical image ID | furiosa-device-plugin |
| Summary | k8s device plugin for rngd devices |
| Description | k8s device plugin for rngd devices |
| Maintainer | FuriosaAI Cloud Native Team <sw-devops@furiosa.ai> |
| Repository name | furiosa-device-plugin |
| Image version | 2026.1.0 |
| Architecture | amd64 |
The image runs a single binary that registers with the kubelet, advertises the FuriosaAI NPUs on the node as allocatable resources, and reports their health. It must run on nodes that have FuriosaAI NPUs and needs access to the host's device plugin socket directory so it can register with the kubelet and detect kubelet restarts. The container starts the binary automatically through its default command.
Behavior is controlled by a small configuration structure:
config:
partitioning: none
debugMode: falseSpecific devices can be disabled on a per-node basis with disabledDeviceUUIDs. The UUID of a device can be obtained with furiosa-smi info:
config:
partitioning: none
debugMode: false
disabledDeviceUUIDs:
node_a:
- "uuid1"
- "uuid2"
node_b:
- "uuid3"
- "uuid4"
If disabledDeviceUUIDs is not specified, the default is an empty list.
The recommended way to deploy on Kubernetes is with the official Helm chart, published at https://github.com/furiosa-ai/helm-charts. Deployment options can be
helm repo add furiosa https://furiosa-ai.github.io/helm-charts
helm repo update
helm install furiosa-device-plugin furiosa/furiosa-device-plugin -n kube-system
Once the plugin is running, request NPUs from a pod using the resource name that matches the configured partitioning mode. For example, with the default none partitioning:
resources:
limits:
furiosa.ai/rngd: "1"
Verifying
After deployment, confirm that the NPU resources are advertised on the nodes:
kubectl get nodes -o custom-columns=NAME:.metadata.name,RNGD:.status.allocatable.'furiosa\.ai/rngd'
Nodes with FuriosaAI NPUs should report a non-zero count for the corresponding resource, after which pods can be scheduled against it.