Node Feature Discovery

When you enable the Node Feature Discovery cluster add-on, you can pass the following key/value pairs as arguments.

Configuration Arguments Common to all Cluster Add-ons
Key (API and CLI) Key's Display Name (Console) Description Required/Optional Default Value Example Value
affinity affinity

A group of affinity scheduling rules.

JSON format in plain text or Base64 encoded.

Not used by:
  • Nvidia GPU Operator
Possible equivalents:
  • Node Feature Discovery, use master.affinity
  • NVIDIA Network Operator, use operator.affinity
  • CSI Driver SMB, use contoller.affinity
Optional null null
nodeSelectors node selectors

You can use node selectors and node labels to control the worker nodes on which add-on pods run.

For a pod to run on a node, the pod's node selector must have the same key/value as the node's label.

Set nodeSelectors to a key/value pair that matches both the pod's node selector, and the worker node's label.

JSON format in plain text or Base64 encoded.

Not used by:
  • NVIDIA GPU Operator
  • CSI Driver SMB
Possible equivalents:
  • Node Feature Discovery, use worker.nodeSelector
  • NVIDIA Network Operator, use operator.nodeSelectors
Optional null {"foo":"bar", "foo2": "bar2"}

The pod will only run on nodes that have the foo=bar or foo2=bar2 label.

numOfReplicas numOfReplicas The number of replicas of the add-on deployment.
Not used by:
  • AMD GPU Plugin
  • NVIDIA GPU Operator
  • NVIDIA Network Operator
  • CSI Driver SMB
Possible equivalents:
  • CoreDNS, use nodesPerReplica
  • Node Feature Discovery, use master.replicaCount
Required 1

Creates one replica of the add-on deployment per cluster.

2

Creates two replicas of the add-on deployment per cluster.

rollingUpdate rollingUpdate

Controls the desired behavior of rolling update by maxSurge and maxUnavailable.

JSON format in plain text or Base64 encoded.

Not used by:
  • Node Feature Discovery
  • NVIDIA Network Operator
  • CSI Driver SMB
Possible equivalents:
  • NVIDIA GPU Operator, use daemonsets.rollingUpdate.maxUnavailable
Optional null null
tolerations tolerations

You can use taints and tolerations to control the worker nodes on which add-on pods run.

For a pod to run on a node that has a taint, the pod must have a corresponding toleration.

Set tolerations to a key/value pair that matches both the pod's toleration, and the worker node's taint.

JSON format in plain text or Base64 encoded.

Possible equivalents:
  • Node Feature Discovery, use master.tolerations and/or worker.tolerations
  • NVIDIA GPU Operator, use daemonsets.tolerations
  • NVIDIA Network Operator, use operator.tolerations
  • CSI Driver SMB, use controller.tolerations
Optional null [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]

Only pods that have this toleration can run on worker nodes that have the tolerationKeyFoo=tolerationValBar:noSchedule taint.

topologySpreadConstraints topologySpreadConstraints

How to spread matching pods among the given topology.

JSON format in plain text or Base64 encoded.

Not used by:
  • Node Feature Discovery
  • NVIDIA GPU Operator
  • NVIDIA Network Operator
  • CSI Driver SMB
Optional null null
Configuration Arguments Specific to this Cluster Add-on
Key (API and CLI) Key's Display Name (Console) Description Required/Optional Default Value Example Value
master.tolerations tolerations for nfd master Custom tolerations to apply to NFD master pods. Optional
[{"key":"node-role.kubernetes.io/master","operator":"Equal","effect":"NoSchedule"},{"key":"node-role.kubernetes.io/control-plane","operator":"Equal","effect":"NoSchedule"}]
master.affinity affinity for nfd master Node affinity rules for scheduling NFD pods. Optional
{"nodeAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/master","operator":"In","values":[""]}]}},{"weight":1,"preference":{"matchExpressions":[{"key":"node-role.kubernetes.io/control-plane","operator":"In","values":[""]}]}}]}}
master.config config for nfd master

Additional master configuration to merge into nfd-master.conf.

YAML or JSON format in plain text.

Optional null
master.resources resources for nfd master Resource requests and limits for the NFD master container. JSON format in plain text. Optional null
master.replicaCount replicaCount for nfd master Replica count for the NFD master deployment. Optional null
master.extraArgs extraArgs for nfd master

Additional command-line arguments for the NFD master container.

JSON array format in plain text.

Optional null
master.annotations annotations for nfd master pods Annotations to merge into the NFD master pod template. Optional null
priorityClassName priorityClassName for nfd deployments PriorityClassName for the NFD master and gc deployments. Optional null
worker.config config for nfd worker

Additional worker configuration to merge into nfd-worker.conf.

YAML or JSON format in plain text.

Optional null
worker.resources resources for nfd worker Resource requests and limits for the NFD worker container. JSON format in plain text. Optional null
worker.tolerations tolerations for nfd worker Additional tolerations to append to the NFD worker pods. Optional null
worker.nodeSelector nodeSelector for nfd worker Node selector labels to merge into the NFD worker DaemonSet. Optional null
worker.priorityClassName priorityClassName for nfd worker PriorityClassName for the NFD worker DaemonSet. Optional null
worker.extraArgs extraArgs for nfd worker

Additional command-line arguments for the NFD worker container.

JSON array format in plain text.

Optional null
worker.annotations annotations for nfd worker pods Annotations to merge into the NFD worker pod template. Optional null
master.customConfigData Custom NFD master configuration data

Provide content for the node-feature-discovery-master-custom-conf ConfigMap.

If provided, it will be mounted automatically.

Optional ""
worker.customConfigData Custom NFD worker configuration data

Provide content for the node-feature-discovery-worker-custom-conf ConfigMap.

If provided, it will be mounted automatically.

Optional ""