Skip to content

Releases: kubernetes-sigs/node-feature-discovery

v0.19.0

Choose a tag to compare

@ArangoGutierrez ArangoGutierrez released this 10 Jul 14:18
v0.19.0
45d276e

Highlights

  • Immediate node re-labeling after a node rebuild (#2545): nfd-master detects a recreated Node via the surviving NodeFeature's owner-reference / pod-UID annotation and re-labels immediately instead of waiting for the periodic reconcile.
  • Configurable NodeFeature owner references: -owner-refs / core.ownerRefs (pod, ds, node; default pod,ds) (#2545).
  • core.noPublishFeatures to slim published NodeFeature objects (#2530; whitespace-trim fix #2535).
  • New x86-64 microarchitecture level labels cpu-cpuid.X86_64_V1..V4 (#2490).
  • nfd-topology-updater: per-pod lookups served from a node-scoped Pod informer, eliminating high-volume per-pod GETs at scale (#2509). Requires an RBAC update — see Action Required.
  • nfd-master reconciles only on NodeFeature/NodeFeatureRule/NodeFeatureGroup spec changes (#2532); MatchInRegexp pattern compilation cached (#2531).

Action Required / Behavior Changes

  1. nfd-topology-updater RBAC (#2509): the ClusterRole needs list+watch on pods (was get only). Helm and kustomize manifests ship the update, but deployments that bump only the image will crash-loop with pods is forbidden ... cannot list resource "pods" until the new RBAC is applied.
  2. NodeFeatureRule templates (#2507): env, expandenv and getHostByName were removed from the available template functions (security hardening). Templates using them now fail to parse (function "env" not defined); the rule is skipped and an error is logged.
  3. Helm worker updateStrategy default (#2519): now rollingUpdate: {maxUnavailable: "10%"} (was Kubernetes default 1). Note for type: OnDelete users: the chart's default rollingUpdate block is deep-merged into your values; the API server accepts and ignores it (verified on v1.30). Optionally set worker.updateStrategy.rollingUpdate: null for a clean spec.
  4. resyncPeriod (nfd-master): drives both the informer resync and the (new in this release, #2415) periodic full reconcile that re-applies labels and cleans up drift. Setting it to 0 disables this safety net entirely.
  5. Node-rebuild re-labeling dependency (#2545): immediate re-label requires pod in -owner-refs (default) or the POD_UID env set on the worker; with ds-only/empty owner refs and no POD_UID, re-labeling falls back to the periodic reconcile interval. -owner-refs=node is unaffected.

Fixes

  • nfd-master: don't remove node labels when the NodeFeature cache is incomplete; add periodic reconciliation to clean up genuinely absent NodeFeatures (#2415).
  • nfd-master: prevent stop() panic and informer leak on init failure (#2534).
  • nfd-worker: trim whitespace in comma-separated command-line list values (#2535).
  • Helm: render post-delete prune job resources at container level so they actually apply (#2515).

Other

  • Container images cross-compile from $BUILDPLATFORM via tonistiigi/xx (#2512).
  • Reduced cognitive complexity refactors in nfd-master controller and nfd-worker config (#2536); nfd-master command-line unit tests (#2469); codecov upload non-fatal in CI verify (#2527); template/custom-api input-validation hardening (#2507).

v0.18.3

Choose a tag to compare

@marquiz marquiz released this 05 Nov 09:24
v0.18.3
f39ef62

What's Changed

This patch release adds support for ppc64le and s390x architectures by providing official NFD container images for them. It also fixes the "test" subcommand of kubectl-nfd plugin.

Full Changelog: v0.18.2...v0.18.3

v0.18.2

Choose a tag to compare

@marquiz marquiz released this 20 Oct 12:29
v0.18.2
6140d1d

This patch release fixes the /metrics endpoint of nfd-topology-updater (#2343).

v0.18.1

Choose a tag to compare

@marquiz marquiz released this 07 Oct 17:01
v0.18.1
c7a501f

This patch release fixes the deployment of PodMonitor object when prometheus-operator metrics collection is enabled.

v0.18.0

Choose a tag to compare

@marquiz marquiz released this 02 Oct 13:27
v0.18.0
9ed6063

Changelog

Image compatibility (EXPERIMENTAL)

The image compatibility related features introduced in v0.17 have been improved and enhanced. Major new feature is the nfd export command.

See the documentation for more details

Helm

The Helm chart is now served from the registry.k8s.io OCI registry at registry.k8s.io/nfd/charts/node-feature-discovery. One liner installation with

helm install -n node-feature-discovery nfd oci://registry.k8s.io/nfd/charts/node-feature-discovery --version 0.18.0 --create-namespace

Important

The legacy Helm repository at https://kubernetes-sigs.github.io/node-feature-discovery/charts is still available, but will be deprecated and stop getting updated in a future release. Users are encouraged to migrate to the OCI registry.

The release contains numerous small improvements and fixes to the Helm chart and its documentation, including:

  • Configurable DNS policy (#2025)
  • Configurable PodDisruptionBudget (#2148)
  • Configurable UpdateStrategy for nfd-worker (#2157)
  • Global global.imagePullSecrets parameter (#2191)
  • Fix for running with OwnerReferencesPermissionEnforcement validating webhook enabled (#2006)
  • Post-delete hook: option to disable (#2076) and configurable image pull secret (#2082)

Deprecations

The deprecated autoDefaultNs configuration parameter of nfd-master was removed.

Toleration for the deprecated node-role.kubernetes.io/master:NoSchedule taint and affinity to the deprecated node-role.kubernetes.io/master label have been removed from the default nfd-master deployment manifests. If you still need these, they need to be explicitly added to the deployment (master.tolerations and master.affinity in the Helm chart).

Important

In v0.18.0 the DisableAutoPrefix feature is still alpha and disabled by default. NFD adds feature.node.kubernetes.io/ prefix to all unprefixed label, annotation and extended resource names. When DisableAutoPrefix is enabled (will be default in a future release), NFD will not add the default prefix automatilly (and add unprefixed names, verbatim). Users are stronglycencouraged to start using fully qualified names (with the prefix) for allccustom labels, annotations and extended resources.

Miscellaneous

Scalability

The release contains improvements and fixes to NFD scalability in larger clusters.

NodeFeatureRules

Label templating

The label templates in NodeFeatureRules now support sprig functions, greatly enhancing their flexibility.

New comparison operators

New comparison operators Ge, Le and GeLe were added (#2085).

Type field in MatchExpressions

New Type field was added to MatchExpressions, allowing to specify the type of the value being compared (#2096). Currently supported types are empty value (the default) and version. Use of version type enables version-aware comparisons.

CPU features

Support for new CPUID flags were added, including AMXCOMPLEX, AMXTRANSPOSE and AMXTF32.

Memory features

NFD now detects availability of hugepages and reports them as memory-hugepages.enabled and hugepages-<page-size>features (#2056).

Network features

Detection of the MTU of network devices was added (#2044).

Metrics and health endpoints

The gRPC health endpoint was replaced by an HTTP healthz endpoint in all NFD daemons. In addition, both the metrics and healthz endpoints are now served on the same port (configurable with --port, default 8080).

Full Changelog

v0.17.4

Choose a tag to compare

@marquiz marquiz released this 22 Sep 10:31
v0.17.4
388b3bc

What's Changed

This release updates dependencies.

Full Changelog: v0.17.3...v0.17.4

v0.16.9.

Choose a tag to compare

@marquiz marquiz released this 22 Sep 10:31
v0.16.9
43a5fc9

What's Changed

This release updates dependencies.

Full Changelog: v0.16.8...v0.16.9

v0.17.3

Choose a tag to compare

@marquiz marquiz released this 24 Apr 18:09
v0.17.3
d4cc19a

What's Changed

  • Fix nfd-master memory leak on non-leader instances when leader election is enabled (#2135)
  • Make the NodeFeatureGroupAPI feature gate effective on nfd-master (#2109)
  • Update dependencies (#2113)

v0.16.8

Choose a tag to compare

@marquiz marquiz released this 24 Apr 18:12
v0.16.8
3426475

What's Changed

  • Fix nfd-master memory leak on non-leader instances when leader election is enabled (#2136)
  • Ignore bonding_masters during network interface detection (#2034)
  • Don't initialize NodeFeatureGroup informers if feature gate disabled in nfd-master (#2110)
  • Update dependencies (#2112)

v0.17.2

Choose a tag to compare

@marquiz marquiz released this 24 Feb 09:21
v0.17.2
5ba51b4

What's Changed

This patch release updates dependencies and fixes the worker.extraArgs value in the Helm chart.

Full Changelog: v0.17.1...v0.17.2