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 Feature Discovery automatically labels Kubernetes nodes with information about the FuriosaAI NPU devices installed on them, such as the NPU family, product name, device count, and driver and firmware versions. These labels let you schedule workloads onto nodes that meet specific NPU requirements and ensure other FuriosaAI components are deployed only on nodes that have NPUs.
It works together with Node Feature Discovery (NFD), the standard Kubernetes tool for detecting hardware features and applying node labels. Furiosa Feature Discovery reads NPU information from the device on each node and writes it to a feature file that NFD turns into node labels. It runs continuously and refreshes the information on a regular interval. If multiple versions of a device-level component such as firmware exist on the same node, the related labels are removed to avoid conflicts.
| Label | Example Value | Description |
| furiosa.ai/npu.count | 8 | Number of NPU devices |
| furiosa.ai/npu.family | rngd | Chip family |
| furiosa.ai/npu.product | rngd, rngd-s, rngd-max | Chip product name |
| furiosa.ai/npu.driver.version | x.y.z | NPU driver version |
| furiosa.ai/npu.firmware.version | x.y.z | NPU firmware version |
The container image is based on a distroless base image and ships the feature discovery binary together with the FuriosaAI shared library it depends on (libfuriosa_smi). It requires access to the FuriosaAI NPU devices 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-feature-discovery |
| Summary | k8s node feature discovery |
| Description | automatic node labeler for rngd devices |
| Maintainer | FuriosaAI Cloud Native Team <sw-devops@furiosa.ai> |
| Repository name | furiosa-feature-discovery |
| Image version | 2026.1.0 |
| Architecture | amd64 |
The image runs a single binary that periodically detects the FuriosaAI NPUs on the node and writes a feature file for Node Feature Discovery to consume. It depends on NFD being present in the cluster, since NFD is what converts the generated file into node labels. The container starts the binary automatically through its default command.
Behavior is controlled by command-line flags:
- --interval — how often, in seconds, the NPU information is refreshed (default 60).
- --output — path of the feature file written for NFD to read (default /etc/kubernetes/node-feature-discovery/features.d/ffd).
The output path must be on a volume shared with NFD so that NFD can read the file the discovery component writes.
Deploying with Helm
The recommended way to deploy on Kubernetes is with the official Helm chart, published at https://github.com/furiosa-ai/helm-charts. The chart installs Furiosa Feature Discovery together with NFD and wires up the shared volume between them. Options can be adjusted in charts/furiosa-feature-discovery/values.yaml before installing.
helm repo add furiosa https://furiosa-ai.github.io/helm-charts
helm repo update
helm install furiosa-feature-discovery furiosa/furiosa-feature-discovery -n <namespace>
After deployment, confirm the NPU labels appear on nodes that have FuriosaAI NPUs:
kubectl get nodes -o json | jq '.items[].metadata.labels | with_entries(select(.key | startswith("furiosa.ai/")))'You can then use these labels in node selectors or affinity rules to schedule NPU workloads.