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; defaultpod,ds) (#2545). core.noPublishFeaturesto 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
- nfd-topology-updater RBAC (#2509): the ClusterRole needs
list+watchonpods(wasgetonly). Helm and kustomize manifests ship the update, but deployments that bump only the image will crash-loop withpods is forbidden ... cannot list resource "pods"until the new RBAC is applied. - NodeFeatureRule templates (#2507):
env,expandenvandgetHostByNamewere 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. - Helm worker
updateStrategydefault (#2519): nowrollingUpdate: {maxUnavailable: "10%"}(was Kubernetes default1). Note fortype: OnDeleteusers: the chart's defaultrollingUpdateblock is deep-merged into your values; the API server accepts and ignores it (verified on v1.30). Optionally setworker.updateStrategy.rollingUpdate: nullfor a clean spec. 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 to0disables this safety net entirely.- Node-rebuild re-labeling dependency (#2545): immediate re-label requires
podin-owner-refs(default) or thePOD_UIDenv set on the worker; withds-only/empty owner refs and noPOD_UID, re-labeling falls back to the periodic reconcile interval.-owner-refs=nodeis 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
$BUILDPLATFORMvia 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).