You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
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.
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
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.
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.
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.
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.
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).