mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-05 21:46:22 +01:00
199 lines
6.0 KiB
Plaintext
199 lines
6.0 KiB
Plaintext
// Module included in the following assemblies:
|
|
//
|
|
// * hardware_enablement/psap-node-feature-discovery-operator.adoc
|
|
|
|
[id="using-the-node-feature-discovery-operator_{context}"]
|
|
= Using the Node Feature Discovery Operator
|
|
|
|
The Node Feature Discovery (NFD) Operator orchestrates all resources needed to run the Node-Feature-Discovery daemon set by watching for a `NodeFeatureDiscovery` CR. Based on the `NodeFeatureDiscovery` CR, the Operator will create the operand (NFD) components in the desired namespace. You can edit the CR to choose another `namespace`, `image`, `imagePullPolicy`, and `nfd-worker-conf`, among other options.
|
|
|
|
As a cluster administrator, you can create a `NodeFeatureDiscovery` instance using the {product-title} CLI or the web console.
|
|
|
|
[id="create-cd-cli_{context}"]
|
|
== Create a NodeFeatureDiscovery instance using the CLI
|
|
|
|
As a cluster administrator, you can create a `NodeFeatureDiscovery` CR instance using the CLI.
|
|
|
|
.Prerequisites
|
|
|
|
* An {product-title} cluster
|
|
* Install the OpenShift CLI (`oc`).
|
|
* Log in as a user with `cluster-admin` privileges.
|
|
* Install the NFD Operator.
|
|
|
|
.Procedure
|
|
|
|
. Create the following `NodeFeatureDiscovery` Custom Resource (CR), and then save the YAML in the `NodeFeatureDiscovery.yaml` file:
|
|
+
|
|
[source,yaml]
|
|
----
|
|
apiVersion: nfd.openshift.io/v1
|
|
kind: NodeFeatureDiscovery
|
|
metadata:
|
|
name: nfd-instance
|
|
namespace: openshift-nfd
|
|
spec:
|
|
instance: "" # instance is empty by default
|
|
operand:
|
|
namespace: openshift-nfd
|
|
image: registry.redhat.io/openshift4/ose-node-feature-discovery:v4.10
|
|
imagePullPolicy: Always
|
|
workerConfig:
|
|
configData: |
|
|
#core:
|
|
# labelWhiteList:
|
|
# noPublish: false
|
|
# sleepInterval: 60s
|
|
# sources: [all]
|
|
# klog:
|
|
# addDirHeader: false
|
|
# alsologtostderr: false
|
|
# logBacktraceAt:
|
|
# logtostderr: true
|
|
# skipHeaders: false
|
|
# stderrthreshold: 2
|
|
# v: 0
|
|
# vmodule:
|
|
## NOTE: the following options are not dynamically run-time configurable
|
|
## and require a nfd-worker restart to take effect after being changed
|
|
# logDir:
|
|
# logFile:
|
|
# logFileMaxSize: 1800
|
|
# skipLogHeaders: false
|
|
#sources:
|
|
# cpu:
|
|
# cpuid:
|
|
## NOTE: whitelist has priority over blacklist
|
|
# attributeBlacklist:
|
|
# - "BMI1"
|
|
# - "BMI2"
|
|
# - "CLMUL"
|
|
# - "CMOV"
|
|
# - "CX16"
|
|
# - "ERMS"
|
|
# - "F16C"
|
|
# - "HTT"
|
|
# - "LZCNT"
|
|
# - "MMX"
|
|
# - "MMXEXT"
|
|
# - "NX"
|
|
# - "POPCNT"
|
|
# - "RDRAND"
|
|
# - "RDSEED"
|
|
# - "RDTSCP"
|
|
# - "SGX"
|
|
# - "SSE"
|
|
# - "SSE2"
|
|
# - "SSE3"
|
|
# - "SSE4.1"
|
|
# - "SSE4.2"
|
|
# - "SSSE3"
|
|
# attributeWhitelist:
|
|
# kernel:
|
|
# kconfigFile: "/path/to/kconfig"
|
|
# configOpts:
|
|
# - "NO_HZ"
|
|
# - "X86"
|
|
# - "DMI"
|
|
# pci:
|
|
# deviceClassWhitelist:
|
|
# - "0200"
|
|
# - "03"
|
|
# - "12"
|
|
# deviceLabelFields:
|
|
# - "class"
|
|
# - "vendor"
|
|
# - "device"
|
|
# - "subsystem_vendor"
|
|
# - "subsystem_device"
|
|
# usb:
|
|
# deviceClassWhitelist:
|
|
# - "0e"
|
|
# - "ef"
|
|
# - "fe"
|
|
# - "ff"
|
|
# deviceLabelFields:
|
|
# - "class"
|
|
# - "vendor"
|
|
# - "device"
|
|
# custom:
|
|
# - name: "my.kernel.feature"
|
|
# matchOn:
|
|
# - loadedKMod: ["example_kmod1", "example_kmod2"]
|
|
# - name: "my.pci.feature"
|
|
# matchOn:
|
|
# - pciId:
|
|
# class: ["0200"]
|
|
# vendor: ["15b3"]
|
|
# device: ["1014", "1017"]
|
|
# - pciId :
|
|
# vendor: ["8086"]
|
|
# device: ["1000", "1100"]
|
|
# - name: "my.usb.feature"
|
|
# matchOn:
|
|
# - usbId:
|
|
# class: ["ff"]
|
|
# vendor: ["03e7"]
|
|
# device: ["2485"]
|
|
# - usbId:
|
|
# class: ["fe"]
|
|
# vendor: ["1a6e"]
|
|
# device: ["089a"]
|
|
# - name: "my.combined.feature"
|
|
# matchOn:
|
|
# - pciId:
|
|
# vendor: ["15b3"]
|
|
# device: ["1014", "1017"]
|
|
# loadedKMod : ["vendor_kmod1", "vendor_kmod2"]
|
|
customConfig:
|
|
configData: |
|
|
# - name: "more.kernel.features"
|
|
# matchOn:
|
|
# - loadedKMod: ["example_kmod3"]
|
|
# - name: "more.features.by.nodename"
|
|
# value: customValue
|
|
# matchOn:
|
|
# - nodename: ["special-.*-node-.*"]
|
|
----
|
|
|
|
. Create the `NodeFeatureDiscovery` CR instance by running the following command:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc create -f NodeFeatureDiscovery.yaml
|
|
----
|
|
|
|
.Verification
|
|
|
|
* To verify that the instance is created, run:
|
|
+
|
|
[source,terminal]
|
|
----
|
|
$ oc get pods
|
|
----
|
|
+
|
|
.Example output
|
|
[source,terminal]
|
|
----
|
|
NAME READY STATUS RESTARTS AGE
|
|
nfd-controller-manager-7f86ccfb58-vgr4x 2/2 Running 0 11m
|
|
nfd-master-hcn64 1/1 Running 0 60s
|
|
nfd-master-lnnxx 1/1 Running 0 60s
|
|
nfd-master-mp6hr 1/1 Running 0 60s
|
|
nfd-worker-vgcz9 1/1 Running 0 60s
|
|
nfd-worker-xqbws 1/1 Running 0 60s
|
|
----
|
|
+
|
|
A successful deployment shows a `Running` status.
|
|
|
|
[id="create-nfd-cr-web-console_{context}"]
|
|
== Create a NodeFeatureDiscovery CR using the web console
|
|
|
|
.Procedure
|
|
|
|
. Navigate to the *Operators* -> *Installed Operators* page.
|
|
. Find *Node Feature Discovery* and see a box under *Provided APIs*.
|
|
. Click *Create instance*.
|
|
. Edit the values of the `NodeFeatureDiscovery` CR.
|
|
. Click *Create*.
|