Run the Node Feature Discovery Helm Chart¶
Node feature discovery detects hardware features available on each node in a Kubernetes cluster, and advertises those features using Kubernetes node labels.
An stx-platform helm repository containing platform related charts, including the node-feature-discovery helm chart, is created automatically once the system has been installed.
Procedure
Confirm that the stx-platform is available.
~(keystone_admin)$ helm repo list NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts starlingx http://127.0.0.1:8080/helm_charts/starlingx stx-platform http://127.0.0.1:8080/helm_charts/stx-platform
The repository is created automatically after system installation has completed. There may be a delay of a few minutes after a new install before it is available.
Create a helm override file to specify custom values for any of the following:
Override Name
Description
Default
image: repository:
The docker image to use for the pods.
k8s.gcr.io/nfd/node-feature-discovery
worker: nodeSelector: {}
The Kubernetes nodeSelector to use for the worker pods. This is a key/value pair to match against node labels and select which nodes should run the node feature discovery.
All nodes. Changing the {} to {foo: bar} will result in the worker pods only running on Kubernetes nodes labelled with foo:bar.
fullnameOverride:
The base name to use for the Kubernetes resources (pods, daemonsets, etc.).
A blank entry here will result in the base name being “node-feature-discovery”.
For example, to set the base name to “nfd” and to run the worker pod only on nodes with the “foo: bar” label:
~(keystone_admin)$ cat <<EOF > /home/sysadmin/my-discovery-overrides.yaml fullnameOverride: nfd worker: nodeSelector: foo: bar EOF
Run the node feature discover helm chart. It is recommended to run it in the “kube-system” namespace so the pods run on the platform CPUs.
To accept the default values, run helm without specifying an overrides file:
~(keystone_admin)$ helm -n kube-system upgrade -i node-feature-discovery stx-platform/node-feature-discovery
If you have defined default overrides in a yaml file, specify the file when running helm.
For example:
~(keystone_admin)$ helm -n kube-system upgrade -i node-feature-discovery stx-platform/node-feature-discovery --values=/home/sysadmin/my-discovery-overrides.yaml
One worker pod is created per node, which runs once per minute to update the node features. One master pod gathers up all the data and reports it to Kubernetes.