Feature Gates


Feature gates are a set of key-value pairs that control the behavior of NFD. They are used to enable or disable certain features of NFD. The feature gates are set using the -feature-gates command line flag or featureGates value in the Helm chart. The following feature gates are available:

Name Default Stage Since Until
NodeFeatureAPI true Beta V0.14 v0.16
NodeFeatureAPI true GA V0.17  
DisableAutoPrefix false Alpha V0.16  
NodeFeatureGroupAPI false Alpha V0.16  

NodeFeatureAPI

The NodeFeatureAPI feature gate enables the Node Feature API. When enabled, NFD will register the Node Feature API with the Kubernetes API server. The Node Feature API is used to expose node-specific hardware and software features to the Kubernetes scheduler. The Node Feature API is a beta feature and is enabled by default.

NodeFeatureGroupAPI

The NodeFeatureGroupAPI feature gate enables the Node Feature Group API. When enabled, NFD will register the Node Feature Group API with the Kubernetes API server. The Node Feature Group API is used to create node groups based on hardware and software features. The Node Feature Group API is an alpha feature and is disabled by default.

DisableAutoPrefix

The DisableAutoPrefix feature gate controls the automatic prefixing of names. When enabled nfd-master does not automatically add the default feature.node.kubernetes.io/ prefix to unprefixed labels, annotations and extended resources. Automatic prefixing is the default behavior in NFD v0.16 and earlier.

Note that enabling the feature gate effectively causes unprefixed names to be filtered out as NFD does not allow unprefixed names of labels, annotations or extended resources. For example, with the DisableAutoPrefix feature gate set to false, a NodeFeatureRule with

  labels:
    foo: bar

will turn into feature.node.kubernetes.io/foo=bar node label. With DisableAutoPrefix set to true, no prefix is added and the label will be filtered out.

Note that taint keys are not affected by this feature gate.