3.4. Configuration de l'opérateur de découverte des fonctionnalités du nœud
3.4.1. noyau
La section core
contient des paramètres de configuration communs qui ne sont pas spécifiques à une source de fonctionnalités particulière.
core.sleepInterval
core.sleepInterval
spécifie l'intervalle entre deux passages consécutifs de détection ou de redétection de caractéristiques, et donc également l'intervalle entre deux réétiquetages de nœuds. Une valeur non positive implique un intervalle de sommeil infini ; aucune redétection ou réétiquetage n'est effectué.
Cette valeur est remplacée par l'indicateur de ligne de commande --sleep-interval
, si elle est spécifiée.
Exemple d'utilisation
core: sleepInterval: 60s
core:
sleepInterval: 60s
La valeur par défaut est 60s
.
core.sources
core.sources
spécifie la liste des sources de fonctionnalités activées. La valeur spéciale all
permet d'activer toutes les sources de fonctionnalités.
Cette valeur est remplacée par l'indicateur de ligne de commande --sources
, si elle est spécifiée.
Par défaut : [all]
Exemple d'utilisation
core: sources: - system - custom
core:
sources:
- system
- custom
core.labelWhiteList
core.labelWhiteList
spécifie une expression régulière pour filtrer les étiquettes de caractéristiques sur la base du nom de l'étiquette. Les étiquettes qui ne correspondent pas ne sont pas publiées.
L'expression régulière n'est comparée qu'à la partie du nom de base de l'étiquette, c'est-à-dire la partie du nom située après "/". Le préfixe de l'étiquette, ou l'espace de noms, est omis.
Cette valeur est remplacée par l'indicateur de ligne de commande --label-whitelist
, si elle est spécifiée.
Par défaut : null
Exemple d'utilisation
core: labelWhiteList: '^cpu-cpuid'
core:
labelWhiteList: '^cpu-cpuid'
core.noPublish
Le réglage de core.noPublish
sur true
désactive toute communication avec nfd-master
. Il s'agit en fait d'un drapeau de marche à vide ; nfd-worker
exécute la détection des caractéristiques normalement, mais aucune demande d'étiquetage n'est envoyée à nfd-master
.
Cette valeur est remplacée par l'indicateur de ligne de commande --no-publish
, s'il est spécifié.
Exemple :
Exemple d'utilisation
core: noPublish: true
core:
noPublish: true
La valeur par défaut est false
.
core.klog
Les options suivantes spécifient la configuration de l'enregistreur, dont la plupart peuvent être ajustées dynamiquement lors de l'exécution.
Les options de l'enregistreur peuvent également être spécifiées à l'aide de drapeaux de ligne de commande, qui ont la priorité sur les options correspondantes du fichier de configuration.
core.klog.addDirHeader
Si la valeur est true
, core.klog.addDirHeader
ajoute le répertoire du fichier à l'en-tête des messages d'enregistrement.
Par défaut : false
Configurable en cours d'exécution : oui
core.klog.alsologtostderr
Enregistrement dans l'erreur standard et dans les fichiers.
Par défaut : false
Configurable en cours d'exécution : oui
core.klog.logBacktraceAt
Lorsque l'enregistrement atteint la ligne file:N, il émet une trace de pile.
Par défaut : empty
Configurable en cours d'exécution : oui
core.klog.logDir
S'il n'est pas vide, les fichiers journaux sont écrits dans ce répertoire.
Par défaut : empty
Configurable en cours d'exécution : non
core.klog.logFile
S'il n'est pas vide, utilisez ce fichier journal.
Par défaut : empty
Configurable en cours d'exécution : non
core.klog.logFileMaxSize
core.klog.logFileMaxSize
définit la taille maximale d'un fichier journal. L'unité est le mégaoctet. Si la valeur est 0
, la taille maximale du fichier est illimitée.
Par défaut : 1800
Configurable en cours d'exécution : non
core.klog.logtostderr
Enregistrer les données dans l'erreur standard au lieu des fichiers
Par défaut : true
Configurable en cours d'exécution : oui
core.klog.skipHeaders
Si core.klog.skipHeaders
est défini sur true
, évitez les préfixes d'en-tête dans les messages d'information.
Par défaut : false
Configurable en cours d'exécution : oui
core.klog.skipLogHeaders
Si core.klog.skipLogHeaders
est défini sur true
, éviter les en-têtes lors de l'ouverture des fichiers journaux.
Par défaut : false
Configurable en cours d'exécution : non
core.klog.stderrthreshold
Les journaux qui atteignent ou dépassent ce seuil sont envoyés à stderr.
Par défaut : 2
Configurable en cours d'exécution : oui
core.klog.v
core.klog.v
est le numéro du niveau de verbosité du journal.
Par défaut : 0
Configurable en cours d'exécution : oui
core.klog.vmodule
core.klog.vmodule
est une liste de paramètres pattern=N
séparés par des virgules pour la journalisation avec filtrage des fichiers.
Par défaut : empty
Configurable en cours d'exécution : oui
3.4.2. sources
La section sources
contient des paramètres de configuration spécifiques aux sources de fonctionnalités.
sources.cpu.cpuid.attributeBlacklist
Empêcher la publication de cpuid
des fonctionnalités énumérées dans cette option.
Cette valeur est remplacée par sources.cpu.cpuid.attributeWhitelist
, si elle est spécifiée.
Par défaut : [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]
Exemple d'utilisation
sources: cpu: cpuid: attributeBlacklist: [MMX, MMXEXT]
sources:
cpu:
cpuid:
attributeBlacklist: [MMX, MMXEXT]
sources.cpu.cpuid.attributeWhitelist
Publier uniquement les fonctionnalités de cpuid
énumérées dans cette option.
sources.cpu.cpuid.attributeWhitelist
a la priorité sur sources.cpu.cpuid.attributeBlacklist
.
Par défaut : empty
Exemple d'utilisation
sources: cpu: cpuid: attributeWhitelist: [AVX512BW, AVX512CD, AVX512DQ, AVX512F, AVX512VL]
sources:
cpu:
cpuid:
attributeWhitelist: [AVX512BW, AVX512CD, AVX512DQ, AVX512F, AVX512VL]
sources.kernel.kconfigFile
sources.kernel.kconfigFile
est le chemin du fichier de configuration du noyau. S'il est vide, NFD effectue une recherche dans les emplacements standard connus.
Par défaut : empty
Exemple d'utilisation
sources: kernel: kconfigFile: "/path/to/kconfig"
sources:
kernel:
kconfigFile: "/path/to/kconfig"
sources.kernel.configOpts
sources.kernel.configOpts
représente les options de configuration du noyau à publier sous forme d'étiquettes d'éléments.
Par défaut : [NO_HZ, NO_HZ_IDLE, NO_HZ_FULL, PREEMPT]
Exemple d'utilisation
sources: kernel: configOpts: [NO_HZ, X86, DMI]
sources:
kernel:
configOpts: [NO_HZ, X86, DMI]
sources.pci.deviceClassWhitelist
sources.pci.deviceClassWhitelist
est une liste d'identifiants de classe de périphériques PCI pour lesquels il faut publier une étiquette. Elle peut être spécifiée en tant que classe principale uniquement (par exemple, 03
) ou en tant que combinaison complète de classe et de sous-classe (par exemple, 0300
). Dans le premier cas, toutes les sous-classes sont acceptées. Le format des étiquettes peut être configuré de manière plus approfondie à l'aide de deviceLabelFields
.
Par défaut : ["03", "0b40", "12"]
Exemple d'utilisation
sources: pci: deviceClassWhitelist: ["0200", "03"]
sources:
pci:
deviceClassWhitelist: ["0200", "03"]
sources.pci.deviceLabelFields
sources.pci.deviceLabelFields
est l'ensemble des champs d'identification PCI à utiliser pour construire le nom de l'étiquette de la caractéristique. Les champs valides sont class
, vendor
, device
, subsystem_vendor
et subsystem_device
.
Par défaut : [class, vendor]
Exemple d'utilisation
sources: pci: deviceLabelFields: [class, vendor, device]
sources:
pci:
deviceLabelFields: [class, vendor, device]
Avec l'exemple de configuration ci-dessus, NFD publierait des étiquettes telles que feature.node.kubernetes.io/pci-<class-id>_<vendor-id>_<device-id>.present=true
sources.usb.deviceClassWhitelist
sources.usb.deviceClassWhitelist
est une liste d'identifiants de classe de périphériques USB pour lesquels il convient de publier une étiquette de fonctionnalité. Le format des étiquettes peut être configuré à l'aide de deviceLabelFields
.
Par défaut : ["0e", "ef", "fe", "ff"]
Exemple d'utilisation
sources: usb: deviceClassWhitelist: ["ef", "ff"]
sources:
usb:
deviceClassWhitelist: ["ef", "ff"]
sources.usb.deviceLabelFields
sources.usb.deviceLabelFields
est l'ensemble des champs d'identification USB à partir desquels doit être composé le nom de l'étiquette de la fonctionnalité. Les champs valides sont class
, vendor
et device
.
Par défaut : [class, vendor, device]
Exemple d'utilisation
sources: pci: deviceLabelFields: [class, vendor]
sources:
pci:
deviceLabelFields: [class, vendor]
Avec l'exemple de configuration ci-dessus, NFD publierait des étiquettes comme : feature.node.kubernetes.io/usb-<class-id>_<vendor-id>.present=true
.
sources.custom
sources.custom
est la liste des règles à traiter dans la source de fonctionnalités personnalisées pour créer des étiquettes spécifiques à l'utilisateur.
Par défaut : empty
Exemple d'utilisation
source: custom: - name: "my.custom.feature" matchOn: - loadedKMod: ["e1000e"] - pciId: class: ["0200"] vendor: ["8086"]
source:
custom:
- name: "my.custom.feature"
matchOn:
- loadedKMod: ["e1000e"]
- pciId:
class: ["0200"]
vendor: ["8086"]