Kubernetes adds image compatibility metadata via Node Feature Discovery
A new specification allows container images to declare host OS and hardware requirements, enabling automated validation before scheduling in Kubernetes clusters.
In a post on the Kubernetes Blog in June 2025, engineers from Huawei and Lawrence Livermore National Laboratory described a new method for handling container compatibility. The proposal addresses how specialized applications can declare specific host operating system or hardware needs directly within their image metadata. This approach leverages the existing Node Feature Discovery project to bridge the gap between container requirements and cluster node capabilities.
What happened
Containerized applications in sectors like telecommunications, high-performance computing, and AI often depend on precise host configurations. These dependencies might include specific kernel versions, device drivers, or system libraries that are not part of the standard container image. While the Open Container Initiative provides standards for image formats, it previously lacked a unified way to express these host-level compatibility requirements. This gap forced teams to rely on manual pre-configuration or immutable infrastructure setups, which are difficult to manage across multi-cloud environments.
To solve this, the authors proposed a specification for image compatibility metadata. This specification allows container authors to define exactly what host features their application needs. The proposal was implemented within the Kubernetes Node Feature Discovery (NFD) project. NFD is an open-source tool that automatically detects and reports hardware and software features of cluster nodes. By integrating compatibility metadata with NFD, users can now schedule workloads only on nodes that meet the strict system requirements defined by the container image.
The implementation supports various container technologies beyond just Kubernetes, including Singularity and other OCI artifacts. It aims to make compatibility requirements discoverable and programmable. This means that instead of guessing whether a node can run a specific workload, the system can automatically validate the fit before deployment begins. This reduces the risk of runtime failures caused by missing drivers or incompatible kernel modules.
How it works
The core mechanism relies on attaching a structured compatibility artifact to a container image in the registry. This artifact uses the OCI referrers API to link the metadata to the specific image it describes. The metadata itself is a YAML file that lists required "Node Feature Groups." These groups define rules based on features that NFD can detect, such as loaded kernel modules, CPU models, or PCI devices.

When a user wants to deploy an image, a client tool retrieves the compatibility artifact from the registry. It then compares the requirements listed in the artifact against the actual features reported by the target node. If the node matches all the specified rules, the validation passes. This process can happen inside or outside a Kubernetes cluster, providing flexibility for hybrid cloud scenarios. The system uses match expressions to check for the existence of specific features or to verify that values fall within an allowed range.
Key details
- The specification was published on June 25, 2025, by Chaoyi Huang, Marcin Franczyk, and Vanessa Sochat.
- It integrates with Kubernetes Node Feature Discovery (NFD) to match container requirements with node capabilities.
- Compatibility metadata is stored as an OCI artifact and attached to images using the
orastool. - The schema includes fields for version, compatibilities, rules, weight, tag, and description.
- Validation can be performed using the
nfd compat validate-nodecommand before scheduling. - The approach supports diverse environments, including RHCOS, Photon OS, Amazon Linux 2, and Azure Linux OS.
Why it matters
For engineers building products in regulated or performance-sensitive industries, this change reduces operational friction. Previously, ensuring that a container could run on a specific node required deep knowledge of the underlying infrastructure or extensive testing. With explicit compatibility metadata, the deployment pipeline can automatically reject unsuitable nodes. This prevents costly runtime errors and ensures that applications with strict hardware dependencies, such as those using GPUs or Infiniband, run on appropriate infrastructure.
This development also simplifies multi-cloud and hybrid cloud strategies. Different cloud providers use different base operating systems, each with unique kernel configurations and driver sets. By defining requirements in a standardized way, teams can write once and deploy anywhere, provided the target nodes expose the necessary features via NFD. This portability is crucial for organizations that need to avoid vendor lock-in while maintaining high reliability.
Furthermore, this lays the groundwork for more intelligent scheduling in the future. As the ecosystem adopts these standards, schedulers could automatically configure nodes or select optimal hardware based on the declared compatibility profile. This moves the industry closer to fully automated, self-healing infrastructure where workload placement is driven by precise technical constraints rather than broad labels.
What you can do
- Explore the Node Feature Discovery project documentation to understand how it detects hardware and software features.
- Use the
orastool to attach compatibility artifacts to your container images in OCI-compliant registries. - Define compatibility rules in YAML format, specifying required kernel modules, CPU vendors, or PCI devices.
- Test the
nfd compat validate-nodeclient tool to check if your current nodes meet your image requirements. - Join the Kubernetes Node Feature Discovery community to contribute to the ongoing development of the Image Compatibility API.
- Review your existing containerized applications to identify any hidden host OS dependencies that could benefit from this specification.


