DirectorySecurity AdvisoriesPricing
Sign in
Directory
node-feature-discovery logoHELM

node-feature-discovery

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart versions
Default values
Chart metadata
Images

Tag:

1
image:
2
# -- NFD image repository
3
# @section -- General
4
repository: chainreg.biz/scratch-images/test-tmp/node-feature-discovery
5
# @schema enum: [Always, IfNotPresent, Never]
6
# -- Image pull policy
7
# @section -- General
8
pullPolicy: IfNotPresent
9
# @schema type: [string, null]
10
# -- NFD image tag. If not specified Chart.AppVersion will be used.
11
# @section -- General
12
tag: 0.19.0-r3@sha256:2be1ac0f6042bc5962d381c0d95c04bf3e63d90cdbcb3ef67794f5dc3a8a4492
13
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets
14
# -- Image pull secrets. [More info](https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod).
15
# @section -- General
16
imagePullSecrets: []
17
# -- Override the name of the chart
18
# @section -- General
19
nameOverride: ""
20
# -- Override a default fully qualified app name
21
# @section -- General
22
fullnameOverride: ""
23
# -- Override the namespace to install the chart into. By default, the namespace is determined by Helm.
24
# @section -- General
25
namespaceOverride: ""
26
# @schema patternProperties: {"^[a-zA-Z]$": {type: string}}
27
# -- [Feature gates](https://kubernetes-sigs.github.io/node-feature-discovery/v0.19/reference/feature-gates) to enable/disable specific features.
28
# @section -- General
29
featureGates: {}
30
# -- Only checksum config values (not the full rendered ConfigMap template) for the rollout annotation.
31
# When enabled, pods will only restart when config values actually change, not on unrelated template changes.
32
# @section -- General
33
checksumValuesOnly: false
34
# -- The name of the PriorityClass to be used for the NFD pods.
35
# @section -- General
36
priorityClassName: ""
37
# -- Enable/disable the Helm post-delete hook.
38
# @section -- General
39
postDeleteCleanup: true
40
#
41
# Global configuration for NFD used as a sub-chart
42
#
43
global:
44
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/imagePullSecrets
45
# -- If `imagePullSecrets` is specified, it takes precedence over `global.imagePullSecrets`. [More info](https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod).
46
# @section -- Global
47
imagePullSecrets: []
48
#
49
# NFD-Master configuration
50
#
51
master:
52
# -- Specifies whether nfd-master should be deployed
53
# @section -- NFD-Master
54
enable: true
55
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Container/properties/args
56
# -- Additional [command line arguments](https://kubernetes-sigs.github.io/node-feature-discovery/v0.19/reference/master-commandline-reference) to pass to nfd-master.
57
# @section -- NFD-Master
58
extraArgs: []
59
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Container/properties/env
60
# -- Additional environment variables to set in the nfd-master container.
61
# @section -- NFD-Master
62
extraEnvs: []
63
# -- Run the container in the host's network namespace.
64
# @section -- NFD-Master
65
hostNetwork: false
66
# @schema type: [boolean, null]
67
# -- (bool) Run the container with host user ids. NOTE: if hostNetwork is true, hostUsers should be true.
68
# @section -- NFD-Master
69
hostUsers: ~ # @schema type: [boolean, null]
70
# @enum: [Default, ClusterFirst, ClusterFirstWithHostNet, None]
71
# -- NFD master pod [dnsPolicy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy).
72
# @section -- NFD-Master
73
dnsPolicy: ClusterFirstWithHostNet
74
# @schema type: [object, null]
75
# -- NFD master [configuration](https://kubernetes-sigs.github.io/node-feature-discovery/v0.19/reference/master-configuration-reference).
76
# @section -- NFD-Master
77
config: ### <NFD-MASTER-CONF-START-DO-NOT-REMOVE>
78
# noPublish: false
79
# extraLabelNs: ["added.ns.io","added.kubernets.io"]
80
# denyLabelNs: ["denied.ns.io","denied.kubernetes.io"]
81
# enableTaints: false
82
# informerPageSize: 200
83
# labelWhiteList: "foo"
84
# resyncPeriod: "2h"
85
# restrictions:
86
# disableLabels: true
87
# disableTaints: true
88
# disableExtendedResources: true
89
# disableAnnotations: true
90
# allowOverwrite: false
91
# denyNodeFeatureLabels: true
92
# nodeFeatureNamespaceSelector:
93
# matchLabels:
94
# kubernetes.io/metadata.name: "node-feature-discovery"
95
# matchExpressions:
96
# - key: "kubernetes.io/metadata.name"
97
# operator: "In"
98
# values:
99
# - "node-feature-discovery"
100
# klog:
101
# addDirHeader: false
102
# alsologtostderr: false
103
# logBacktraceAt:
104
# logtostderr: true
105
# skipHeaders: false
106
# stderrthreshold: 2
107
# v: 0
108
# vmodule:
109
## NOTE: the following options are not dynamically run-time configurable
110
## and require a nfd-master restart to take effect after being changed
111
# logDir:
112
# logFile:
113
# logFileMaxSize: 1800
114
# skipLogHeaders: false
115
# leaderElection:
116
# leaseDuration: 15s
117
# # this value has to be lower than leaseDuration and greater than retryPeriod*1.2
118
# renewDeadline: 10s
119
# # this value has to be greater than 0
120
# retryPeriod: 2s
121
# nfdApiParallelism: 10
122
### <NFD-MASTER-CONF-END-DO-NOT-REMOVE>
123
124
# @schema type: integer; minimum: 1; maximum: 65535
125
# -- Port on which to serve http for metrics and healthz endpoints.
126
# @section -- NFD-Master
127
port: 8080
128
# @schema type: [string, null]
129
# -- Instance name. Used to separate annotation namespaces for multiple parallel deployments.
130
# @section -- NFD-Master
131
instance:
132
# @schema type: [string, null]
133
# -- (int) NFD API controller resync period. Time duration string (e.g. "5m", "1h", "2h45m").
134
# @section -- NFD-Master
135
resyncPeriod:
136
# @schema item: string
137
# -- Label namespaces to deny. Labels with these prefixes will not be published to the nodes.
138
# @section -- NFD-Master
139
denyLabelNs: []
140
# @schema item: string
141
# -- Additional label namespaces to publish. Labels with these prefixes are allowed even if otherwise denied by `master.denyLabelNs`.
142
# @section -- NFD-Master
143
extraLabelNs: []
144
# -- Enable node tainting.
145
# @section -- NFD-Master
146
enableTaints: false
147
# @schema type: [integer, null]; minimum: 1; maximum: 100
148
# -- (int) The maximum number of concurrent node updates.
149
# @section -- NFD-Master
150
nfdApiParallelism:
151
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
152
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the nfd-master Deployment.
153
# @section -- NFD-Master
154
deploymentAnnotations: {}
155
# -- Number of the desired replicas for the nfd-master Deployment.
156
# @section -- NFD-Master
157
replicaCount: 1
158
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSecurityContext
159
# -- [Pod SecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) of the nfd-master pods.
160
# @section -- NFD-Master
161
podSecurityContext: {}
162
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/initContainers
163
# -- [Init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) to add to the nfd-master pods.
164
# @section -- NFD-Master
165
initContainers: []
166
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.SecurityContext
167
# -- [SecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) of the nfd-master container.
168
# @section -- NFD-Master
169
securityContext:
170
# @schema hidden
171
allowPrivilegeEscalation: false
172
# @schema hidden
173
capabilities:
174
drop: ["ALL"]
175
# @schema hidden
176
readOnlyRootFilesystem: true
177
# @schema hidden
178
runAsNonRoot: true
179
serviceAccount:
180
# -- Specifies whether a service account should be created.
181
# @section -- NFD-Master
182
create: true
183
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
184
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the service account
185
# @section -- NFD-Master
186
annotations: {}
187
# @schema type: [string, null]
188
# -- The name of the service account to use. If not set and create is true, a name is generated using the fullname template
189
# @section -- NFD-Master
190
name:
191
# @schema type: [integer, null]
192
# -- (int) Specifies the number of old ReplicaSets for the Deployment to retain. [revisionHistoryLimit](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#revision-history-limit)
193
# @section -- NFD-Master
194
revisionHistoryLimit:
195
rbac:
196
# -- Create [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) configuration for nfd-master.
197
# @section -- NFD-Master
198
create: true
199
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.ResourceRequirements
200
resources:
201
# @schema hidden
202
# -- Resource [limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) for the nfd-master container.
203
# @section -- NFD-Master
204
limits:
205
memory: 4Gi
206
# @schema hidden
207
# -- Resource [requests](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) for the nfd-master container.
208
# @section -- NFD-Master
209
requests:
210
cpu: 100m
211
# You may want to use the same value for `requests.memory` and `limits.memory`. The “requests” value affects scheduling to accommodate pods on nodes.
212
# If there is a large difference between “requests” and “limits” and nodes experience memory pressure, the kernel may invoke
213
# the OOM Killer, even if the memory does not exceed the “limits” threshold. This can cause unexpected pod evictions. Memory
214
# cannot be compressed and once allocated to a pod, it can only be reclaimed by killing the pod.
215
# Natan Yellin 22/09/2022 https://home.robusta.dev/blog/kubernetes-memory-limit
216
memory: 128Mi
217
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/nodeSelector
218
# -- [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for the nfd-master pods.
219
# @section -- NFD-Master
220
nodeSelector: {}
221
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/tolerations
222
# -- [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for the nfd-master pods.
223
# @section -- NFD-Master
224
tolerations:
225
- # @schema hidden
226
key: "node-role.kubernetes.io/control-plane"
227
# @schema hidden
228
operator: "Equal"
229
# @schema hidden
230
value: ""
231
# @schema hidden
232
effect: "NoSchedule"
233
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetSpec
234
podDisruptionBudget:
235
# -- Configure PodDisruptionBudget for the nfd-master Deployment.
236
# @section -- NFD-Master
237
enable: false
238
# @schema hidden
239
# -- Minimum number (or percentage) of pods that must be available after the eviction.
240
# @section -- NFD-Master
241
minAvailable: 1
242
# @schema hidden
243
# -- Policy to evict unhealthy pods when a PodDisruptionBudget is defined.
244
# @section -- NFD-Master
245
unhealthyPodEvictionPolicy: AlwaysAllow
246
# @section -- NFD-Master
247
networkPolicy:
248
# -- Should a networkPolicy be deployed for the nfd-master pods
249
# @section -- NFD-Master
250
enabled: false
251
# @schema itemRef: $k8s/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule
252
# -- [Egress](https://kubernetes.io/docs/concepts/services-networking/network-policies/#network-traffic-filtering) for the nfd-master pods.
253
# The minimum egress ports required to function are: DNS (53/udp, 53/tcp, API server (80/tcp, 443/tcp, 6443/tcp). NOTE: OKD and Openshift use 6443/tcp
254
# @section -- NFD-Master
255
egress:
256
- ports: # @schema hidden
257
- port: 80
258
protocol: TCP
259
- port: 443
260
protocol: TCP
261
- port: 53
262
protocol: TCP
263
- port: 53
264
protocol: UDP
265
- port: 6443
266
protocol: TCP
267
# @schema itemRef: $k8s/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule
268
# -- [Ingress](https://kubernetes.io/docs/concepts/services-networking/network-policies/#network-traffic-filtering) for the nfd-master pods.
269
# @section -- NFD-Master
270
ingress:
271
- ports: # @schema hidden
272
- protocol: TCP
273
port: http
274
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
275
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the nfd-master pods.
276
# @section -- NFD-Master
277
annotations: {}
278
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels
279
# -- [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) to add to the nfd-master pods.
280
# @section -- NFD-Master
281
labels: {}
282
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Affinity
283
# -- [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) for the nfd-master pods.
284
# @section -- NFD-Master
285
affinity:
286
# @schema hidden
287
nodeAffinity:
288
preferredDuringSchedulingIgnoredDuringExecution:
289
- weight: 1
290
preference:
291
matchExpressions:
292
- key: "node-role.kubernetes.io/control-plane"
293
operator: In
294
values: [""]
295
# -- Startup probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-startup-probes).
296
# @section -- NFD-Master
297
# @default -- -
298
startupProbe:
299
# @schema type: [integer, null]
300
# -- (int) The number of seconds after the container has started before probe is initiated.
301
# @section -- NFD-Master
302
initialDelaySeconds:
303
# @schema type: [integer, null]; minimum: 1
304
# -- (int) The number of seconds after which the probe times out.
305
# @section -- NFD-Master
306
timeoutSeconds:
307
# @schema type: [integer, null]; minimum: 1
308
# -- (int) How often (in seconds) to perform the probe.
309
# @section -- NFD-Master
310
periodSeconds:
311
# @schema type: [integer, null]; minimum: 1
312
# -- (int) The number of consecutive failures for the probe before considering the pod as not ready.
313
# @section -- NFD-Master
314
failureThreshold: 30
315
# -- Liveness probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-liveness-probes).
316
# @section -- NFD-Master
317
# @default -- -
318
livenessProbe:
319
# @schema type: [integer, null]
320
# -- (int) The number of seconds after the container has started before probe is initiated.
321
# @section -- NFD-Master
322
initialDelaySeconds:
323
# @schema type: [integer, null]; minimum: 1
324
# -- (int) The number of seconds after which the probe times out.
325
# @section -- NFD-Master
326
timeoutSeconds:
327
# @schema type: [integer, null]; minimum: 1
328
# -- (int) How often (in seconds) to perform the probe.
329
# @section -- NFD-Master
330
periodSeconds:
331
# @schema type: [integer, null]; minimum: 1
332
# -- (int) Minimum consecutive successes for the probe before considering the pod as ready.
333
# @section -- NFD-Master
334
failureThreshold:
335
# -- Readiness probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-readiness-probes).
336
# @section -- NFD-Master
337
# @default -- -
338
readinessProbe:
339
# @schema type: [integer, null]
340
# -- (int) The number of seconds after the container has started before probe is initiated.
341
# @section -- NFD-Master
342
initialDelaySeconds:
343
# @schema type: [integer, null]; minimum: 1
344
# -- (int) The number of seconds after which the probe times out.
345
# @section -- NFD-Master
346
timeoutSeconds:
347
# @schema type: [integer, null]; minimum: 1
348
# -- (int) How often (in seconds) to perform the probe.
349
# @section -- NFD-Master
350
periodSeconds:
351
# @schema type: [integer, null]; minimum: 1
352
# -- (int) Minimum consecutive successes for the probe before considering the pod as ready.
353
# @section -- NFD-Master
354
successThreshold:
355
# @schema type: [integer, null]; minimum: 1
356
# -- (int) The number of consecutive failures for the probe before considering the pod as not ready.
357
# @section -- NFD-Master
358
failureThreshold: 10
359
#
360
# NFD-Worker configuration
361
#
362
worker:
363
# -- Specifies whether nfd-worker should be deployed
364
# @section -- NFD-Worker
365
enable: true
366
# @schema uniqueItems:true;item:string;itemEnum:["node","pod","ds"]
367
# -- Objects used as owner references for NodeFeature objects. Valid values are `node`, `pod`, and `ds`. This value is passed through `-owner-refs` and takes precedence over `worker.config.core.ownerRefs`.
368
# @section -- NFD-Worker
369
ownerRefs:
370
- pod
371
- ds
372
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Container/properties/args
373
# -- Additional [command line arguments](https://kubernetes-sigs.github.io/node-feature-discovery/v0.19/reference/worker-commandline-reference) to pass to nfd-worker.
374
# @section -- NFD-Worker
375
extraArgs: []
376
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Container/properties/env
377
# -- Additional environment variables to set in the nfd-worker container.
378
# @section -- NFD-Worker
379
extraEnvs: []
380
# -- Run the container in the host's network namespace.
381
# @section -- NFD-Worker
382
hostNetwork: false
383
# @schema type: [boolean, null]
384
# -- (bool) Run the container with host user ids. NOTE: if hostNetwork is true, hostUsers should be true.
385
# @section -- NFD-Worker
386
hostUsers: ~ # @schema type: [boolean, null]
387
# @enum: [Default, ClusterFirst, ClusterFirstWithHostNet, None]
388
# -- NFD worker pod [dnsPolicy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-policy).
389
# @section -- NFD-Worker
390
dnsPolicy: ClusterFirstWithHostNet
391
# @schema type: [object, null]
392
# -- NFD worker [configuration](https://kubernetes-sigs.github.io/node-feature-discovery/v0.19/reference/worker-configuration-reference).
393
# @section -- NFD-Worker
394
config: ### <NFD-WORKER-CONF-START-DO-NOT-REMOVE>
395
#core:
396
# labelWhiteList:
397
# noPublish: false
398
# noOwnerRefs: false
399
# # Select from node, pod and ds. Use [] to disable owner references.
400
# ownerRefs: [pod, ds]
401
# sleepInterval: 60s
402
# featureSources: [all]
403
# labelSources: [all]
404
# # Discover these features but omit them from the published NodeFeature object
405
# # to reduce its size. Exact key or '*' prefix (e.g. pci.device, pci.*).
406
# # Only for features no NodeFeatureRule/NodeFeatureGroup consumes.
407
# noPublishFeatures: []
408
# klog:
409
# addDirHeader: false
410
# alsologtostderr: false
411
# logBacktraceAt:
412
# logtostderr: true
413
# skipHeaders: false
414
# stderrthreshold: 2
415
# v: 0
416
# vmodule:
417
## NOTE: the following options are not dynamically run-time configurable
418
## and require a nfd-worker restart to take effect after being changed
419
# logDir:
420
# logFile:
421
# logFileMaxSize: 1800
422
# skipLogHeaders: false
423
#sources:
424
# cpu:
425
# cpuid:
426
## NOTE: whitelist has priority over blacklist
427
# attributeBlacklist:
428
# - "AVX10"
429
# - "BMI1"
430
# - "BMI2"
431
# - "CLMUL"
432
# - "CMOV"
433
# - "CX16"
434
# - "ERMS"
435
# - "F16C"
436
# - "HTT"
437
# - "LZCNT"
438
# - "MMX"
439
# - "MMXEXT"
440
# - "NX"
441
# - "POPCNT"
442
# - "RDRAND"
443
# - "RDSEED"
444
# - "RDTSCP"
445
# - "SGX"
446
# - "SSE"
447
# - "SSE2"
448
# - "SSE3"
449
# - "SSE4"
450
# - "SSE42"
451
# - "SSSE3"
452
# - "TDX_GUEST"
453
# attributeWhitelist:
454
# kernel:
455
# kconfigFile: "/path/to/kconfig"
456
# configOpts:
457
# - "NO_HZ"
458
# - "X86"
459
# - "DMI"
460
# pci:
461
# deviceClassWhitelist:
462
# - "0200"
463
# - "03"
464
# - "12"
465
# deviceLabelFields:
466
# - "class"
467
# - "vendor"
468
# - "device"
469
# - "subsystem_vendor"
470
# - "subsystem_device"
471
# usb:
472
# deviceClassWhitelist:
473
# - "0e"
474
# - "ef"
475
# - "fe"
476
# - "ff"
477
# deviceLabelFields:
478
# - "class"
479
# - "vendor"
480
# - "device"
481
# custom:
482
# # The following feature demonstrates the capabilities of the matchFeatures
483
# - name: "my custom rule"
484
# labels:
485
# "vendor.io/my-ng-feature": "true"
486
# # matchFeatures implements a logical AND over all matcher terms in the
487
# # list (i.e. all of the terms, or per-feature matchers, must match)
488
# matchFeatures:
489
# - feature: cpu.cpuid
490
# matchExpressions:
491
# AVX512F: {op: Exists}
492
# - feature: cpu.cstate
493
# matchExpressions:
494
# enabled: {op: IsTrue}
495
# - feature: cpu.pstate
496
# matchExpressions:
497
# no_turbo: {op: IsFalse}
498
# scaling_governor: {op: In, value: ["performance"]}
499
# - feature: cpu.rdt
500
# matchExpressions:
501
# RDTL3CA: {op: Exists}
502
# - feature: cpu.sst
503
# matchExpressions:
504
# bf.enabled: {op: IsTrue}
505
# - feature: cpu.topology
506
# matchExpressions:
507
# hardware_multithreading: {op: IsFalse}
508
#
509
# - feature: kernel.config
510
# matchExpressions:
511
# X86: {op: Exists}
512
# LSM: {op: InRegexp, value: ["apparmor"]}
513
# - feature: kernel.loadedmodule
514
# matchExpressions:
515
# e1000e: {op: Exists}
516
# - feature: kernel.selinux
517
# matchExpressions:
518
# enabled: {op: IsFalse}
519
# - feature: kernel.kvm
520
# matchExpressions:
521
# enabled: {op: IsFalse}
522
# - feature: kernel.version
523
# matchExpressions:
524
# major: {op: In, value: ["5"]}
525
# minor: {op: Gt, value: ["10"]}
526
#
527
# - feature: storage.block
528
# matchExpressions:
529
# rotational: {op: In, value: ["0"]}
530
# dax: {op: In, value: ["0"]}
531
#
532
# - feature: network.device
533
# matchExpressions:
534
# operstate: {op: In, value: ["up"]}
535
# speed: {op: Gt, value: ["100"]}
536
#
537
# - feature: memory.numa
538
# matchExpressions:
539
# node_count: {op: Gt, value: ["2"]}
540
# - feature: memory.nv
541
# matchExpressions:
542
# devtype: {op: In, value: ["nd_dax"]}
543
# mode: {op: In, value: ["memory"]}
544
#
545
# - feature: system.osrelease
546
# matchExpressions:
547
# ID: {op: In, value: ["fedora", "centos"]}
548
# - feature: system.name
549
# matchExpressions:
550
# nodename: {op: InRegexp, value: ["^worker-X"]}
551
#
552
# - feature: local.label
553
# matchExpressions:
554
# custom-feature-knob: {op: Gt, value: ["100"]}
555
#
556
# # The following feature demonstrates the capabilities of the matchAny
557
# - name: "my matchAny rule"
558
# labels:
559
# "vendor.io/my-ng-feature-2": "my-value"
560
# # matchAny implements a logical IF over all elements (sub-matchers) in
561
# # the list (i.e. at least one feature matcher must match)
562
# matchAny:
563
# - matchFeatures:
564
# - feature: kernel.loadedmodule
565
# matchExpressions:
566
# driver-module-X: {op: Exists}
567
# - feature: pci.device
568
# matchExpressions:
569
# vendor: {op: In, value: ["8086"]}
570
# class: {op: In, value: ["0200"]}
571
# - matchFeatures:
572
# - feature: kernel.loadedmodule
573
# matchExpressions:
574
# driver-module-Y: {op: Exists}
575
# - feature: usb.device
576
# matchExpressions:
577
# vendor: {op: In, value: ["8086"]}
578
# class: {op: In, value: ["02"]}
579
#
580
# - name: "avx wildcard rule"
581
# labels:
582
# "my-avx-feature": "true"
583
# matchFeatures:
584
# - feature: cpu.cpuid
585
# matchName: {op: InRegexp, value: ["^AVX512"]}
586
#
587
# # The following features demonstreate label templating capabilities
588
# - name: "my template rule"
589
# labelsTemplate: |
590
# {{ range .system.osrelease }}vendor.io/my-system-feature.{{ .Name }}={{ .Value }}
591
# {{ end }}
592
# matchFeatures:
593
# - feature: system.osrelease
594
# matchExpressions:
595
# ID: {op: InRegexp, value: ["^open.*"]}
596
# VERSION_ID.major: {op: In, value: ["13", "15"]}
597
#
598
# - name: "my template rule 2"
599
# labelsTemplate: |
600
# {{ range .pci.device }}vendor.io/my-pci-device.{{ .class }}-{{ .device }}=with-cpuid
601
# {{ end }}
602
# matchFeatures:
603
# - feature: pci.device
604
# matchExpressions:
605
# class: {op: InRegexp, value: ["^06"]}
606
# vendor: ["8086"]
607
# - feature: cpu.cpuid
608
# matchExpressions:
609
# AVX: {op: Exists}
610
#
611
# # The following examples demonstrate vars field and back-referencing
612
# # previous labels and vars
613
# - name: "my dummy kernel rule"
614
# labels:
615
# "vendor.io/my.kernel.feature": "true"
616
# matchFeatures:
617
# - feature: kernel.version
618
# matchExpressions:
619
# major: {op: Gt, value: ["2"]}
620
#
621
# - name: "my dummy rule with no labels"
622
# vars:
623
# "my.dummy.var": "1"
624
# matchFeatures:
625
# - feature: cpu.cpuid
626
# matchExpressions: {}
627
#
628
# - name: "my rule using backrefs"
629
# labels:
630
# "vendor.io/my.backref.feature": "true"
631
# matchFeatures:
632
# - feature: rule.matched
633
# matchExpressions:
634
# vendor.io/my.kernel.feature: {op: IsTrue}
635
# my.dummy.var: {op: Gt, value: ["0"]}
636
#
637
# - name: "kconfig template rule"
638
# labelsTemplate: |
639
# {{ range .kernel.config }}kconfig-{{ .Name }}={{ .Value }}
640
# {{ end }}
641
# matchFeatures:
642
# - feature: kernel.config
643
# matchName: {op: In, value: ["SWAP", "X86", "ARM"]}
644
### <NFD-WORKER-CONF-END-DO-NOT-REMOVE>
645
646
# @schema type: integer; minimum: 1; maximum: 65535
647
# -- Port on which to serve http for metrics and healthz endpoints.
648
# @section -- NFD-Worker
649
port: 8080
650
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
651
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the nfd-worker DaemonSet.
652
# @section -- NFD-Worker
653
daemonsetAnnotations: {}
654
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSecurityContext
655
# -- [Pod SecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) of the nfd-worker pods.
656
# @section -- NFD-Worker
657
podSecurityContext: {}
658
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/initContainers
659
# -- [Init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) to add to the nfd-worker pods.
660
# @section -- NFD-Worker
661
initContainers: []
662
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.SecurityContext
663
# -- [SecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) of the nfd-worker container.
664
# @section -- NFD-Worker
665
securityContext:
666
# @schema hidden
667
allowPrivilegeEscalation: false
668
# @schema hidden
669
capabilities:
670
drop: ["ALL"]
671
# @schema hidden
672
readOnlyRootFilesystem: true
673
# @schema hidden
674
runAsNonRoot: true
675
# -- Liveness probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-liveness-probes).
676
# @section -- NFD-Worker
677
# @default -- -
678
livenessProbe:
679
# @schema type: [integer, null]
680
# -- (int) The number of seconds after the container has started before probe is initiated.
681
# @section -- NFD-Worker
682
initialDelaySeconds: 10
683
# @schema type: [integer, null]; minimum: 1
684
# -- (int) The number of seconds after which the probe times out.
685
# @section -- NFD-Worker
686
timeoutSeconds:
687
# @schema type: [integer, null]; minimum: 1
688
# -- (int) How often (in seconds) to perform the probe.
689
# @section -- NFD-Worker
690
periodSeconds:
691
# @schema type: [integer, null]; minimum: 1
692
# -- (int) Minimum consecutive successes for the probe before considering the pod as ready.
693
# @section -- NFD-Worker
694
failureThreshold:
695
# -- Readiness probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-readiness-probes).
696
# @section -- NFD-Worker
697
# @default -- -
698
readinessProbe:
699
# @schema type: [integer, null]
700
# -- (int) The number of seconds after the container has started before probe is initiated.
701
# @section -- NFD-Worker
702
initialDelaySeconds: 5
703
# @schema type: [integer, null]; minimum: 1
704
# -- (int) The number of seconds after which the probe times out.
705
# @section -- NFD-Worker
706
timeoutSeconds:
707
# @schema type: [integer, null]; minimum: 1
708
# -- (int) How often (in seconds) to perform the probe.
709
# @section -- NFD-Worker
710
periodSeconds:
711
# @schema type: [integer, null]; minimum: 1
712
# -- (int) Minimum consecutive successes for the probe before considering the pod as ready.
713
# @section -- NFD-Worker
714
successThreshold:
715
# @schema type: [integer, null]; minimum: 1
716
# -- (int) The number of consecutive failures for the probe before considering the pod as not ready.
717
# @section -- NFD-Worker
718
failureThreshold: 10
719
serviceAccount:
720
# -- Specifies whether a service account should be created.
721
# @section -- NFD-Worker
722
create: true
723
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
724
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the service account
725
# @section -- NFD-Worker
726
annotations: {}
727
# @schema type: [string, null]
728
# -- Name of the service account to use. If not set and create is true, a name is generated using the fullname template
729
# @section -- NFD-Worker
730
name:
731
# @schema type: [integer, null]
732
# -- (int) Specifies the number of old history for the DaemonSet to retain to allow rollback.
733
# @section -- NFD-Worker
734
revisionHistoryLimit:
735
rbac:
736
# -- Create [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) configuration for nfd-worker.
737
# @section -- NFD-Worker
738
create: true
739
# Allow users to mount the hostPath /usr/src, useful for RHCOS on s390x
740
# Does not work on systems without /usr/src AND a read-only /usr, such as Talos
741
# -- Mount host path /user/src inside the container. Does not work on systems without /usr/src AND a read-only /usr.
742
# @section -- NFD-Worker
743
mountUsrSrc: false
744
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.ResourceRequirements
745
resources:
746
# @schema hidden
747
# -- Resource [limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) for the nfd-worker container.
748
# @section -- NFD-Worker
749
limits:
750
memory: 512Mi
751
# @schema hidden
752
# -- Resource [requests](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) for the nfd-worker container.
753
# @section -- NFD-Worker
754
requests:
755
cpu: 5m
756
memory: 64Mi
757
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/nodeSelector
758
# -- [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for the nfd-worker pods.
759
# @section -- NFD-Worker
760
nodeSelector: {}
761
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/tolerations
762
# -- [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for the nfd-worker pods.
763
# @section -- NFD-Worker
764
tolerations: []
765
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
766
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the nfd-worker pods.
767
# @section -- NFD-Worker
768
annotations: {}
769
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels
770
# -- [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) to add to the nfd-worker pods.
771
# @section -- NFD-Worker
772
labels: {}
773
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Affinity
774
# -- [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) for the nfd-worker pods.
775
# @section -- NFD-Worker
776
affinity: {}
777
# @schema type: [string, null]
778
# -- The name of the PriorityClass to be used for the nfd-worker pods.
779
# @section -- NFD-Worker
780
priorityClassName:
781
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.apps.v1.DaemonSetUpdateStrategy
782
# -- Update strategy for the nfd-worker DaemonSet. Defaults to a rolling
783
# update with `maxUnavailable: "10%"` so upgrades complete in a bounded
784
# number of waves on clusters of any size (the Kubernetes default of
785
# `maxUnavailable: 1` rolls one node at a time and makes Helm wait and
786
# Flux HelmRelease timeouts likely on large clusters). nfd-worker is
787
# stateless and node labels persist while a worker pod restarts, so a
788
# faster roll is safe. Set `maxUnavailable: 1` to restore the Kubernetes
789
# default. To use `type: OnDelete`, also set `rollingUpdate: null`
790
# (Helm deep-merges maps).
791
# [More info](https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set)
792
# @section -- NFD-Worker
793
updateStrategy:
794
rollingUpdate:
795
# @schema type: [string, integer]
796
maxUnavailable: "10%"
797
# @section -- NFD-Worker
798
networkPolicy:
799
# -- Should a networkPolicy be deployed for the nfd-worker pods
800
# @section -- NFD-Worker
801
enabled: false
802
# @schema itemRef: $k8s/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule
803
# -- [Egress](https://kubernetes.io/docs/concepts/services-networking/network-policies/#network-traffic-filtering) for the nfd-worker pods.
804
# The minimum egress ports required to function are: DNS (53/udp, 53/tcp, API server (80/tcp, 443/tcp, 6443/tcp). NOTE: OKD and Openshift use 6443/tcp
805
# @section -- NFD-Worker
806
egress:
807
- ports: # @schema hidden
808
- port: 80
809
protocol: TCP
810
- port: 443
811
protocol: TCP
812
- port: 53
813
protocol: TCP
814
- port: 53
815
protocol: UDP
816
- port: 6443
817
protocol: TCP
818
# @schema itemRef: $k8s/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule
819
# -- [Ingress](https://kubernetes.io/docs/concepts/services-networking/network-policies/#network-traffic-filtering) for the nfd-worker pods.
820
# @section -- NFD-Worker
821
ingress:
822
- ports: # @schema hidden
823
- protocol: TCP
824
port: http
825
#
826
# NFD-Topology-Updater configuration
827
#
828
topologyUpdater:
829
# @schema type: [object, null]
830
# -- Configuration for the topology updater. See the [configuration reference](https://kubernetes-sigs.github.io/node-feature-discovery/v0.19/reference/topology-updater-configuration-reference) for details.
831
# @section -- NFD-Topology-Updater
832
config: ### <NFD-TOPOLOGY-UPDATER-CONF-START-DO-NOT-REMOVE>
833
## key = node name, value = list of resources to be excluded.
834
## use * to exclude from all nodes.
835
## an example for how the exclude list should looks like
836
#excludeList:
837
# node1: [cpu]
838
# node2: [memory, example/deviceA]
839
# *: [hugepages-2Mi]
840
### <NFD-TOPOLOGY-UPDATER-CONF-END-DO-NOT-REMOVE>
841
842
# -- Specifies whether nfd-topology-updater should be deployed.
843
# @section -- NFD-Topology-Updater
844
enable: false
845
# -- Create the NodeResourceTopology CRD. This MUST be set to true when
846
# 'enable' is true, unless the CRD is installed separately (e.g., by another
847
# Helm release or external tool). If the CRD is missing, the topology-updater
848
# pods will fail with "NodeResourceTopology CRD is not installed" error.
849
# @section -- NFD-Topology-Updater
850
createCRDs: false
851
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Container/properties/args
852
# -- Additional [command line arguments](https://kubernetes-sigs.github.io/node-feature-discovery/v0.19/reference/topology-updater-commandline-reference) to pass to nfd-topology-updater.
853
# @section -- NFD-Topology-Updater
854
extraArgs: []
855
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Container/properties/env
856
# -- Additional environment variables to set in the nfd-topology-updater container.
857
# @section -- NFD-Topology-Updater
858
extraEnvs: []
859
# -- Run the container in the host's network namespace.
860
# @section -- NFD-Topology-Updater
861
hostNetwork: false
862
# @schema type: [boolean, null]
863
# -- (bool) Run the container with host user ids. NOTE: if hostNetwork is true, hostUsers should be true.
864
# @section -- NFD-Topology-Updater
865
hostUsers: ~ # @schema type: [boolean, null]
866
# @enum: [Default, ClusterFirst, ClusterFirstWithHostNet, None]
867
# -- NFD topology updater pod [dnsPolicy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-policy).
868
# @section -- NFD-Topology-Updater
869
dnsPolicy: ClusterFirstWithHostNet
870
serviceAccount:
871
# -- Specifies whether a service account should be created.
872
# @section -- NFD-Topology-Updater
873
create: true
874
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
875
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the service account.
876
# @section -- NFD-Topology-Updater
877
annotations: {}
878
# @schema type: [string, null]
879
# -- Name or the service account to use. If not set and create is true, a name is generated using the fullname template.
880
# @section -- NFD-Topology-Updater
881
name:
882
# @schema type: [integer, null]
883
# -- (int) Specifies the number of old history for the DaemonSet to retain to allow rollback.
884
# @section -- NFD-Topology-Updater
885
revisionHistoryLimit:
886
rbac:
887
# -- Create [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) configuration for nfd-topology-updater.
888
# @section -- NFD-Topology-Updater
889
create: true
890
# @schema type: integer; minimum: 1; maximum: 65535
891
# -- Port on which to serve http for metrics and healthz endpoints.
892
# @section -- NFD-Topology-Updater
893
port: 8080
894
# @schema type: [string, null]
895
# -- Host path for the kubelet config file.
896
# @section -- NFD-Topology-Updater
897
kubeletConfigPath:
898
# @schema type: [string, null]
899
# -- Host path for the kubelet socket for podresources endpoint.
900
# @section -- NFD-Topology-Updater
901
kubeletPodResourcesSockPath:
902
# -- Time to sleep between CR updates. Non-positive value implies no CR update.
903
# @section -- NFD-Topology-Updater
904
updateInterval: 60s
905
# -- Namespace to watch pods, `*` for all namespaces.
906
# @section -- NFD-Topology-Updater
907
watchNamespace: "*"
908
# -- The kubelet state directory path for watching state and checkpoint files. Empty value disables kubelet state tracking.
909
# @section -- NFD-Topology-Updater
910
kubeletStateDir: /var/lib/kubelet
911
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSecurityContext
912
# -- [Pod SecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) of the nfd-topology-updater pods.
913
# @section -- NFD-Topology-Updater
914
podSecurityContext: {}
915
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/initContainers
916
# -- [Init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) to add to the nfd-topology-updater pods.
917
# @section -- NFD-Topology-Updater
918
initContainers: []
919
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.SecurityContext
920
# -- [SecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) of the nfd-topology-updater container.
921
# @section -- NFD-Topology-Updater
922
securityContext:
923
# @schema hidden
924
allowPrivilegeEscalation: false
925
# @schema hidden
926
capabilities:
927
drop: ["ALL"]
928
# @schema hidden
929
readOnlyRootFilesystem: true
930
# @schema hidden
931
runAsUser: 0
932
# -- Liveness probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-liveness-probes).
933
# @section -- NFD-Topology-Updater
934
# @default -- -
935
livenessProbe:
936
# @schema type: [integer, null]
937
# -- (int) The number of seconds after the container has started before probe is initiated.
938
# @section -- NFD-Topology-Updater
939
initialDelaySeconds: 10
940
# @schema type: [integer, null]; minimum: 1
941
# -- (int) The number of seconds after which the probe times out.
942
# @section -- NFD-Topology-Updater
943
timeoutSeconds:
944
# @schema type: [integer, null]; minimum: 1
945
# -- (int) How often (in seconds) to perform the probe.
946
# @section -- NFD-Topology-Updater
947
periodSeconds:
948
# @schema type: [integer, null]; minimum: 1
949
# -- (int) Minimum consecutive successes for the probe before considering the pod as ready.
950
# @section -- NFD-Topology-Updater
951
failureThreshold:
952
# -- Readiness probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-readiness-probes).
953
# @section -- NFD-Topology-Updater
954
# @default -- -
955
readinessProbe:
956
# @schema type: [integer, null]
957
# -- (int) The number of seconds after the container has started before probe is initiated.
958
# @section -- NFD-Topology-Updater
959
initialDelaySeconds: 5
960
# @schema type: [integer, null]; minimum: 1
961
# -- (int) The number of seconds after which the probe times out.
962
# @section -- NFD-Topology-Updater
963
timeoutSeconds:
964
# @schema type: [integer, null]; minimum: 1
965
# -- (int) How often (in seconds) to perform the probe.
966
# @section -- NFD-Topology-Updater
967
periodSeconds:
968
# @schema type: [integer, null]; minimum: 1
969
# -- (int) Minimum consecutive successes for the probe before considering the pod as ready.
970
# @section -- NFD-Topology-Updater
971
successThreshold:
972
# @schema type: [integer, null]; minimum: 1
973
# -- (int) The number of consecutive failures for the probe before considering the pod as not ready.
974
# @section -- NFD-Topology-Updater
975
failureThreshold: 10
976
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.ResourceRequirements
977
resources:
978
# @schema hidden
979
# -- Resource [limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) for the nfd-topology-updater container.
980
# @section -- NFD-Topology-Updater
981
limits:
982
memory: 60Mi
983
# @schema hidden
984
# -- Resource [requests](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) for the nfd-topology-updater container.
985
# @section -- NFD-Topology-Updater
986
requests:
987
cpu: 50m
988
memory: 40Mi
989
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/nodeSelector
990
# -- [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for the nfd-topology-updater pods.
991
# @section -- NFD-Topology-Updater
992
nodeSelector: {}
993
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/tolerations
994
# -- [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for the nfd-topology-updater pods.
995
# @section -- NFD-Topology-Updater
996
tolerations: []
997
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
998
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the nfd-topology-updater pods.
999
# @section -- NFD-Topology-Updater
1000
annotations: {}
1001
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels
1002
# -- [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) to add to the nfd-topology-updater pods.
1003
# @section -- NFD-Topology-Updater
1004
labels: {}
1005
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
1006
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the nfd-topology-updater DaemonSet.
1007
# @section -- NFD-Topology-Updater
1008
daemonsetAnnotations: {}
1009
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Affinity
1010
# -- [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) for the nfd-topology-updater pods.
1011
# @section -- NFD-Topology-Updater
1012
affinity: {}
1013
# -- Enables compute and report of pod fingerprint in NRT objects.
1014
# @section -- NFD-Topology-Updater
1015
podSetFingerprint: true
1016
# @section -- NFD-Topology-Updater
1017
networkPolicy:
1018
# -- Should a networkPolicy be deployed for the nfd-topology pods
1019
# @section -- NFD-Topology-Updater
1020
enabled: false
1021
# @schema itemRef: $k8s/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule
1022
# -- [Egress](https://kubernetes.io/docs/concepts/services-networking/network-policies/#network-traffic-filtering) for the nfd-topology pods.
1023
# The minimum egress ports required to function are: DNS (53/udp, 53/tcp, API server (80/tcp, 443/tcp, 6443/tcp). NOTE: OKD and Openshift use 6443/tcp
1024
# @section -- NFD-Topology-Updater
1025
egress:
1026
- ports: # @schema hidden
1027
- port: 80
1028
protocol: TCP
1029
- port: 443
1030
protocol: TCP
1031
- port: 53
1032
protocol: TCP
1033
- port: 53
1034
protocol: UDP
1035
- port: 6443
1036
protocol: TCP
1037
# @schema itemRef: $k8s/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule
1038
# -- [Ingress](https://kubernetes.io/docs/concepts/services-networking/network-policies/#network-traffic-filtering) for the nfd-topology pods.
1039
# @section -- NFD-Topology-Updater
1040
ingress:
1041
- ports: # @schema hidden
1042
- protocol: TCP
1043
port: http
1044
#
1045
# NFD-GC configuration
1046
#
1047
gc:
1048
# -- Specifies whether nfd-gc should be deployed.
1049
# @section -- NFD-GC
1050
enable: true
1051
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Container/properties/args
1052
# -- Additional [command line arguments](https://kubernetes-sigs.github.io/node-feature-discovery/v0.19/reference/gc-commandline-reference) to pass to nfd-gc.
1053
# @section -- NFD-GC
1054
extraArgs: []
1055
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Container/properties/env
1056
# -- Additional environment variables to set in the nfd-gc container.
1057
# @section -- NFD-GC
1058
extraEnvs: []
1059
# -- Run the container in the host's network namespace.
1060
# @section -- NFD-GC
1061
hostNetwork: false
1062
# @schema type: [boolean, null]
1063
# -- (bool) Run the container with host user ids. NOTE: if hostNetwork is true, hostUsers should be true.
1064
# @section -- NFD-GC
1065
hostUsers: ~ # @schema type: [boolean, null]
1066
# -- The number of desired replicas for the nfd-gc Deployment.
1067
# @section -- NFD-GC
1068
replicaCount: 1
1069
# @enum: [Default, ClusterFirst, ClusterFirstWithHostNet, None]
1070
# -- NFD gc pod [dnsPolicy](https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-policy).
1071
# @section -- NFD-GC
1072
dnsPolicy: ClusterFirstWithHostNet
1073
serviceAccount:
1074
# -- Specifies whether a service account should be created.
1075
# @section -- NFD-GC
1076
create: true
1077
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
1078
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the service account.
1079
# @section -- NFD-GC
1080
annotations: {}
1081
# @schema type: [string, null]
1082
# -- Name of the service account to use. If not set and create is true, a name is generated using the fullname template.
1083
# @section -- NFD-GC
1084
name:
1085
rbac:
1086
# -- Create [RBAC](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) configuration for nfd-gc.
1087
# @section -- NFD-GC
1088
create: true
1089
# -- Time between periodic garbage collector runs.
1090
# @section -- NFD-GC
1091
interval: 1h
1092
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSecurityContext
1093
# -- [Pod SecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod) of the nfd-gc pods.
1094
# @section -- NFD-GC
1095
podSecurityContext: {}
1096
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/initContainers
1097
# -- [Init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) to add to the nfd-gc pods.
1098
# @section -- NFD-GC
1099
initContainers: []
1100
# -- Liveness probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-liveness-probes).
1101
# @section -- NFD-GC
1102
# @default -- -
1103
livenessProbe:
1104
# @schema type: [integer, null]
1105
# -- (int) The number of seconds after the container has started before probe is initiated.
1106
# @section -- NFD-GC
1107
initialDelaySeconds: 10
1108
# @schema type: [integer, null]; minimum: 1
1109
# -- (int) The number of seconds after which the probe times out.
1110
# @section -- NFD-GC
1111
timeoutSeconds:
1112
# @schema type: [integer, null]; minimum: 1
1113
# -- (int) How often (in seconds) to perform the probe.
1114
# @section -- NFD-GC
1115
periodSeconds:
1116
# @schema type: [integer, null]; minimum: 1
1117
# -- (int) Minimum consecutive successes for the probe before considering the pod as ready.
1118
# @section -- NFD-GC
1119
failureThreshold:
1120
# -- Readiness probe configuration. [More information](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-readiness-probes).
1121
# @section -- NFD-GC
1122
# @default -- -
1123
readinessProbe:
1124
# @schema type: [integer, null]
1125
# -- (int) The number of seconds after the container has started before probe is initiated.
1126
# @section -- NFD-GC
1127
initialDelaySeconds: 5
1128
# @schema type: [integer, null]; minimum: 1
1129
# -- (int) The number of seconds after which the probe times out.
1130
# @section -- NFD-GC
1131
timeoutSeconds:
1132
# @schema type: [integer, null]; minimum: 1
1133
# -- (int) How often (in seconds) to perform the probe.
1134
# @section -- NFD-GC
1135
periodSeconds:
1136
# @schema type: [integer, null]; minimum: 1
1137
# -- (int) Minimum consecutive successes for the probe before considering the pod as ready.
1138
# @section -- NFD-GC
1139
successThreshold:
1140
# @schema type: [integer, null]; minimum: 1
1141
# -- (int) The number of consecutive failures for the probe before considering the pod as not ready.
1142
# @section -- NFD-GC
1143
failureThreshold:
1144
resources:
1145
# @schema hidden
1146
# -- Resource [limits](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) for the nfd-gc container.
1147
# @section -- NFD-GC
1148
limits:
1149
memory: 1Gi
1150
# @schema hidden
1151
# -- Resource [requests](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) for the nfd-gc container.
1152
# @section -- NFD-GC
1153
requests:
1154
cpu: 10m
1155
memory: 128Mi
1156
# @schema type: integer; minimum: 1; maximum: 65535
1157
# -- Port on which to serve http for metrics and healthz endpoints.
1158
# @section -- NFD-GC
1159
port: 8080
1160
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/nodeSelector
1161
# -- [Node selector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for the nfd-gc pods.
1162
# @section -- NFD-GC
1163
nodeSelector: {}
1164
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.PodSpec/properties/tolerations
1165
# -- [Tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) for the nfd-gc pods.
1166
# @section -- NFD-GC
1167
tolerations: []
1168
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
1169
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the nfd-gc pods.
1170
# @section -- NFD-GC
1171
annotations: {}
1172
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/labels
1173
# -- [Labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) to add to the nfd-gc pods.
1174
# @section -- NFD-GC
1175
labels: {}
1176
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta/properties/annotations
1177
# -- [Annotations](https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations) to add to the nfd-gc Deployment.
1178
# @section -- NFD-GC
1179
deploymentAnnotations: {}
1180
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.core.v1.Affinity
1181
# -- [Affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity) for the nfd-gc pods.
1182
# @section -- NFD-GC
1183
affinity: {}
1184
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.api.policy.v1.PodDisruptionBudgetSpec
1185
podDisruptionBudget:
1186
# -- Configure PodDisruptionBudget for the nfd-master Deployment.
1187
# @section -- NFD-GC
1188
enable: false
1189
# @schema hidden
1190
# -- Minimum number (or percentage) of pods that must be available after the eviction.
1191
# @section -- NFD-GC
1192
minAvailable: 1
1193
# @schema hidden
1194
# -- Policy to evict unhealthy pods when a PodDisruptionBudget is defined.
1195
# @section -- NFD-GC
1196
unhealthyPodEvictionPolicy: AlwaysAllow
1197
# @schema type: [integer, null]
1198
# -- (int) Specifies the number of old history for the Deployment to retain to allow rollback.
1199
# @section -- NFD-GC
1200
revisionHistoryLimit:
1201
# @section -- NFD-GC
1202
networkPolicy:
1203
# -- Should a networkPolicy be deployed for the nfd-gc pods
1204
# @section -- NFD-GC
1205
enabled: false
1206
# @schema itemRef: $k8s/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule
1207
# -- [Egress](https://kubernetes.io/docs/concepts/services-networking/network-policies/#network-traffic-filtering) for the nfd-gc pods.
1208
# The minimum egress ports required to function are: DNS (53/udp, 53/tcp, API server (80/tcp, 443/tcp, 6443/tcp). NOTE: OKD and Openshift use 6443/tcp
1209
# @section -- NFD-GC
1210
egress:
1211
- ports: # @schema hidden
1212
- port: 80
1213
protocol: TCP
1214
- port: 443
1215
protocol: TCP
1216
- port: 53
1217
protocol: TCP
1218
- port: 53
1219
protocol: UDP
1220
- port: 6443
1221
protocol: TCP
1222
# @schema itemRef: $k8s/_definitions.json#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule
1223
# -- [Ingress](https://kubernetes.io/docs/concepts/services-networking/network-policies/#network-traffic-filtering) for the nfd-gc pods.
1224
# @section -- NFD-GC
1225
ingress:
1226
- ports: # @schema hidden
1227
- protocol: TCP
1228
port: http
1229
#
1230
# Prometheus configuration
1231
#
1232
prometheus:
1233
# -- Create PodMonitor object for enabling metrics collection by Prometheus Operator.
1234
# @section -- Prometheus
1235
enable: false
1236
# -- Interval at which metrics are scraped.
1237
# @section -- Prometheus
1238
scrapeInterval: 10s
1239
# -- Labels to add to the PodMonitor object.
1240
# @section -- Prometheus
1241
labels: {}
1242

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.