</code></pre></div></div><h3id="corefeaturesources">core.featureSources</h3><p><codeclass="language-plaintext highlighter-rouge notranslate">core.featureSources</code> specifies the list of enabled feature sources. A special value <codeclass="language-plaintext highlighter-rouge notranslate">all</code> enables all sources. Prefixing a source name with <codeclass="language-plaintext highlighter-rouge notranslate">-</code> indicates that the source will be disabled instead - this is only meaningful when used in conjunction with <codeclass="language-plaintext highlighter-rouge notranslate">all</code>. This option allows completely disabling the feature detection so that neither standard feature labels are generated nor the raw feature data is available for custom rule processing.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">[all]</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">core</span><spanclass="pi">:</span>
<spanclass="c1"># Enable all but cpu and local sources</span>
</code></pre></div></div><h3id="corelabelsources">core.labelSources</h3><p><codeclass="language-plaintext highlighter-rouge notranslate">core.labelSources</code> specifies the list of enabled label sources. A special value <codeclass="language-plaintext highlighter-rouge notranslate">all</code> enables all sources. Prefixing a source name with <codeclass="language-plaintext highlighter-rouge notranslate">-</code> indicates that the source will be disabled instead - this is only meaningful when used in conjunction with <codeclass="language-plaintext highlighter-rouge notranslate">all</code>. This configuration option affects the generation of node labels but not the actual discovery of the underlying feature data that is used e.g. in custom/<codeclass="language-plaintext highlighter-rouge notranslate">NodeFeatureRule</code> rules.</p><p>Note: Overridden by the <codeclass="language-plaintext highlighter-rouge notranslate">-label-sources</code> and <codeclass="language-plaintext highlighter-rouge notranslate">-sources</code> command line flags and the <codeclass="language-plaintext highlighter-rouge notranslate">core.sources</code> configurations option (if any of them is specified).</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">[all]</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">core</span><spanclass="pi">:</span>
<spanclass="c1"># Enable all but cpu and system sources</span>
</code></pre></div></div><h3id="coresources">core.sources</h3><p><strong>DEPRECATED</strong>: use <ahref="#core.labelSources"><codeclass="language-plaintext highlighter-rouge notranslate">core.labelSources</code></a> instead.</p><p>Note: <codeclass="language-plaintext highlighter-rouge notranslate">core.sources</code> takes precedence over the <codeclass="language-plaintext highlighter-rouge notranslate">core.labelSources</code> configuration file option.</p><h3id="corelabelwhitelist">core.labelWhiteList</h3><p><codeclass="language-plaintext highlighter-rouge notranslate">core.labelWhiteList</code> specifies a regular expression for filtering feature labels based on the label name. Non-matching labels are not published.</p><p>Note: The regular expression is only matches against the "basename" part of the label, i.e. to the part of the name after ‘/'. The label prefix (or namespace) is omitted.</p><p>Note: Overridden by the deprecated <codeclass="language-plaintext highlighter-rouge notranslate">-label-whitelist</code> command line flag (if specified).</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">null</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">core</span><spanclass="pi">:</span>
</code></pre></div></div><h3id="corenopublish">core.noPublish</h3><p>Setting <codeclass="language-plaintext highlighter-rouge notranslate">core.noPublish</code> to <codeclass="language-plaintext highlighter-rouge notranslate">true</code> disables all communication with the nfd-master. It is effectively a "dry-run" flag: nfd-worker runs feature detection normally, but no labeling requests are sent to nfd-master.</p><p>Note: Overridden by the <codeclass="language-plaintext highlighter-rouge notranslate">-no-publish</code> command line flag (if specified).</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">false</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">core</span><spanclass="pi">:</span>
</code></pre></div></div><h3id="coreklog">core.klog</h3><p>The following options specify the logger configuration. Most of which can be dynamically adjusted at run-time.</p><p>Note: The logger options can also be specified via command line flags which take precedence over any corresponding config file options.</p><h4id="coreklogadddirheader">core.klog.addDirHeader</h4><p>If true, adds the file directory to the header of the log messages.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">false</code></p><p>Run-time configurable: yes</p><h4id="coreklogalsologtostderr">core.klog.alsologtostderr</h4><p>Log to standard error as well as files.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">false</code></p><p>Run-time configurable: yes</p><h4id="corekloglogbacktraceat">core.klog.logBacktraceAt</h4><p>When logging hits line file:N, emit a stack trace.</p><p>Default: <em>empty</em></p><p>Run-time configurable: yes</p><h4id="corekloglogdir">core.klog.logDir</h4><p>If non-empty, write log files in this directory.</p><p>Default: <em>empty</em></p><p>Run-time configurable: no</p><h4id="corekloglogfile">core.klog.logFile</h4><p>If non-empty, use this log file.</p><p>Default: <em>empty</em></p><p>Run-time configurable: no</p><h4id="corekloglogfilemaxsize">core.klog.logFileMaxSize</h4><p>Defines the maximum size a log file can grow to. Unit is megabytes. If the value is 0, the maximum file size is unlimited.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">1800</code></p><p>Run-time configurable: no</p><h4id="corekloglogtostderr">core.klog.logtostderr</h4><p>Log to standard error instead of files</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">true</code></p><p>Run-time configurable: yes</p><h4id="coreklogskipheaders">core.klog.skipHeaders</h4><p>If true, avoid header prefixes in the log messages.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">false</code></p><p>Run-time configurable: yes</p><h4id="coreklogskiplogheaders">core.klog.skipLogHeaders</h4><p>If true, avoid headers when opening log files.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">false</code></p><p>Run-time configurable: no</p><h4id="coreklogstderrthreshold">core.klog.stderrthreshold</h4><p>Logs at or above this threshold go to stderr (default 2)</p><p>Run-time configurable: yes</p><h4id="coreklogv">core.klog.v</h4><p>Number for the log level verbosity.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">0</code></p><p>Run-time configurable: yes</p><h4id="coreklogvmodule">core.klog.vmodule</h4><p>Comma-separated list of <codeclass="language-plaintext highlighter-rouge notranslate">pattern=N</code> settings for file-filtered logging.</p><p>Default: <em>empty</em></p><p>Run-time configurable: yes</p><h2id="sources">sources</h2><p>The <codeclass="language-plaintext highlighter-rouge notranslate">sources</code> section contains feature source specific configuration parameters.</p><h3id="sourcescpu">sources.cpu</h3><h4id="sourcescpucpuid">sources.cpu.cpuid</h4><h5id="sourcescpucpuidattributeblacklist">sources.cpu.cpuid.attributeBlacklist</h5><p>Prevent publishing cpuid features listed in this option.</p><p>Note: overridden by <codeclass="language-plaintext highlighter-rouge notranslate">sources.cpu.cpuid.attributeWhitelist</code> (if specified)</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">[BMI1, BMI2, CLMUL, CMOV, CX16, ERMS, F16C, HTT, LZCNT, MMX, MMXEXT, NX, POPCNT, RDRAND, RDSEED, RDTSCP, SGX, SGXLC, SSE, SSE2, SSE3, SSE4.1, SSE4.2, SSSE3]</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">sources</span><spanclass="pi">:</span>
</code></pre></div></div><h5id="sourcescpucpuidattributewhitelist">sources.cpu.cpuid.attributeWhitelist</h5><p>Only publish the cpuid features listed in this option.</p><p>Note: takes precedence over <codeclass="language-plaintext highlighter-rouge notranslate">sources.cpu.cpuid.attributeBlacklist</code></p><p>Default: <em>empty</em></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">sources</span><spanclass="pi">:</span>
</code></pre></div></div><h3id="sourceskernel">sources.kernel</h3><h4id="sourceskernelkconfigfile">sources.kernel.kconfigFile</h4><p>Path of the kernel config file. If empty, NFD runs a search in the well-known standard locations.</p><p>Default: <em>empty</em></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">sources</span><spanclass="pi">:</span>
</code></pre></div></div><h3id="sourespci">soures.pci</h3><h4id="sourespcideviceclasswhitelist">soures.pci.deviceClassWhitelist</h4><p>List of PCI <ahref="https://pci-ids.ucw.cz/read/PD">device class</a> IDs for which to publish a label. Can be specified as a main class only (e.g. <codeclass="language-plaintext highlighter-rouge notranslate">03</code>) or full class-subclass combination (e.g. <codeclass="language-plaintext highlighter-rouge notranslate">0300</code>) - the former implies that all subclasses are accepted. The format of the labels can be further configured with <ahref="#soures.pci.deviceLabelFields">deviceLabelFields</a>.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">["03", "0b40", "12"]</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">sources</span><spanclass="pi">:</span>
</code></pre></div></div><h4id="sourespcidevicelabelfields">soures.pci.deviceLabelFields</h4><p>The set of PCI ID fields to use when constructing the name of the feature label. Valid fields are <codeclass="language-plaintext highlighter-rouge notranslate">class</code>, <codeclass="language-plaintext highlighter-rouge notranslate">vendor</code>, <codeclass="language-plaintext highlighter-rouge notranslate">device</code>, <codeclass="language-plaintext highlighter-rouge notranslate">subsystem_vendor</code> and <codeclass="language-plaintext highlighter-rouge notranslate">subsystem_device</code>.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">[class, vendor]</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">sources</span><spanclass="pi">:</span>
</code></pre></div></div><p>With the example config above NFD would publish labels like: <codeclass="language-plaintext highlighter-rouge notranslate">feature.node.kubernetes.io/pci-<class-id>_<vendor-id>_<device-id>.present=true</code></p><h3id="sourcesusb">sources.usb</h3><h4id="souresusbdeviceclasswhitelist">soures.usb.deviceClassWhitelist</h4><p>List of USB <ahref="https://www.usb.org/defined-class-codes">device class</a> IDs for which to publish a feature label. The format of the labels can be further configured with <ahref="#soures.usb.deviceLabelFields">deviceLabelFields</a>.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">["0e", "ef", "fe", "ff"]</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">sources</span><spanclass="pi">:</span>
</code></pre></div></div><h4id="souresusbdevicelabelfields">soures.usb.deviceLabelFields</h4><p>The set of USB ID fields from which to compose the name of the feature label. Valid fields are <codeclass="language-plaintext highlighter-rouge notranslate">class</code>, <codeclass="language-plaintext highlighter-rouge notranslate">vendor</code>, <codeclass="language-plaintext highlighter-rouge notranslate">device</code> and <codeclass="language-plaintext highlighter-rouge notranslate">serial</code>.</p><p>Default: <codeclass="language-plaintext highlighter-rouge notranslate">[class, vendor, device]</code></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">sources</span><spanclass="pi">:</span>
</code></pre></div></div><p>With the example config above NFD would publish labels like: <codeclass="language-plaintext highlighter-rouge notranslate">feature.node.kubernetes.io/usb-<class-id>_<vendor-id>.present=true</code></p><h3id="sourcescustom">sources.custom</h3><p>List of rules to process in the custom feature source to create user-specific labels. Refer to the documentation of the <ahref="../get-started/features.html#custom">custom feature source</a> for details of the available rules and their configuration.</p><p>Default: <em>empty</em></p><p>Example:</p><divclass="language-yaml highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="na">source</span><spanclass="pi">:</span>