Releases: kubernetes-sigs/node-feature-discovery
Release v0.16.6
v0.15.7
v0.16.5
What's Changed
Fixes an nfd-master memory leak on re-configure events when leader election is enabled. Adds parameters to configure health endpoint port.
Full Changelog: v0.16.4...v0.16.5
v0.16.4
What's Changed
This patch release contains improvements to the Helm chart, adding configurable liveness and readiness probes for all daemons and configurable revision history limit for the nfd-worker and nfd-topology-updater.
- Helm: Add revision history limit for worker daemonset (#1797) by @marquiz in #1799
- go.mod: bump kubernetes to v1.30.3 by @marquiz in #1805
- helm: add configurable liveness&readiness probes by @marquiz in #1808
- Add helm migration guide by @k8s-infra-cherrypick-robot in #1825
Full Changelog: v0.16.3...v0.16.4
v0.16.3
v0.16.2
What's Changed
Fixes an issue where node labels were temporarily removed on nfd-worker pod restarts.
Full Changelog: v0.16.1...v0.16.2
v0.15.6
What's Changed
Fixes an issue where node labels were temporarily removed on nfd-worker pod restarts.
Full Changelog: v0.15.5...v0.15.6
v0.15.5
v0.16.1
What's Changed
- [release-0.16] Revert "build(deps): bump actions/checkout from 1 to 4" by @k8s-infra-cherrypick-robot in #1721
- [release-0.16] topology-updater: properly handle IPv6 from NODE_ADDRESS by @k8s-infra-cherrypick-robot in #1731
- [release-0.16] helm: remove defaults CPU limits by @k8s-infra-cherrypick-robot in #1736
- [release-0.16] Fix the problem with starting the master with empty cache by @k8s-infra-cherrypick-robot in #1740
- [release-0.16] ensure post-delete-job's service account matches ref in job spec by @k8s-infra-cherrypick-robot in #1750
Full Changelog: v0.16.0...v0.16.1
v0.16
Changelog
NodeFeatureGroup API
The NodeFeatureGroup custom resource was added to the NFD API. The NodeFeatureGroup API enables the creation of node groups based on features discovered by NFD. The API is an alpha feature and is disabled by default and can be enabled with the NodeFeatureGroupAPI feature gate.
See documentation for more details.
Feature gates
NFD adapted the concept of feature gates from Kubernetes to introduce and stabilize new features in a controlled way. See the documentation for more details. Two existing features (NodeFeature API and disabling label auto-prefixing) were converted into feature gates.
Deprecations
Upcoming changes
Support for hooks is deprecated since v0.12.0 and will be completely dropped in the NFD v0.17.
RDT feature labels removed
The feature.node.kubernetes.io/cpu-rdt.*
feature labels that were deprecated in NFD v0.13 were removed. RDT features are still available for use in NodeFeatureRules for custom labels.
Deprecated flags and options
The autoDefaultNs config file option of nfd-master is deprecated and will be removed in NFD v0.17. Superseded by the DisableAutoPrefix feature gate (featureGates.DisableAutoPrefix
Helm parameter).
The -enable-nodefeature-api
command line flag of nfd-master and nfd-worker and the corresponding enableNodeFeatureApi
Helm chart parameter have been deprecated and will be removed in NFD v0.17. Superseded by the NodeFeature API feature gate (featureGates.NodeFeatureAPI
Helm parameter).
The -crd-controller
command line flag of nfd-master is deprecated and will be removed with the gRPC API in a future release.
Miscellaneous
Network devices
Discover speed of virtual network interfaces.
DMI
Added support for detecting DMI attributes from /sys/devices/virtual/dmi/id/
. In v0.16 only sys_vendor
discovered, available as system.dmiid.sys_vendor
feature for use in NodeFeatureRules.
Swap
Discover the availability of swap on the node. Available as memory.swap.enabled
feature for use in NodeFeatureRules.
Helm chart
Now all nodes are cleaned up (feature labels, annotations, extended resources and taints are removed) after uninstalling NFD using a post-delete hook.
The Helm chart now sets resource requests (cpu and memory) for NFD pods. Users may want to adjust these for their cluster. An option to set the pod priority class was added. See Helm chart parameters in the documentation).
Container health
A gRPC health server was added to the nfd-master, nfd-worker and nfd-topology-updater daemons. Deployments (Helm and kustomize) configure container liveness and readiness probes to use that for health checking.
List of PRs
- github: update tagging instructions in release checklists (#1527)
- Update readme to v0.15.0 release (#1524)
- makefile: fix build: target (#1528)
- Makefile: add -timeout argument to e2e-tests (#1526)
- helm: add post-delete hook that cleans up the node (#1532)
- deployment/kustomize: drop the sample cert-manager overlay (#1534)
- nfd-master: run a separate gRPC health server (#1535)
- source/network: discover speed of virtual network interfaces (#1536)
- go.mod: update dependencies (#1539)
- chore: combine cpu count and thread_siblings functions into discover topology function (#1505)
- source/cpu: drop deprecated cpu-rdt labels (#1530)
- Update readme to v0.15.1 release (#1552)
- hack/generate: patch auto-generated deepcopy functions (#1553)
- apis/nfd: Trivial typo fix in tests (#1537)
- docs: update docs build dependencies (#1543)
- topology-updater: initialize properly with -no-publish (#1554)
- topology-updater: document the -no-publish flag correctly (#1555)
- Wrap nested errors (#1558)
- Prevent
nfd-worker
erroring when reading attributes from paravirtual devices (#1557) - pkg/utils: move GetKubeconfig from pkg/apihelper here (#1562)
- OWNERS: add AhmedGrati as a reviewer (#1564)
- deployment/helm: don't deploy topology-updater conf unnecessarily (#1565)
- topology-updater: get topology api client directly (#1566)
- pkg/utils: move JsonPatch from pkg/apihelper (#1568)
- nfd-master: ditch apihelper (#1570)
- topology-updater: ditch apihelper (#1567)
- Drop pkg/apihelper (#1561)
- nfd-master: fix node status patching (#1571)
- nfd-topology-updater add pods fingerprint by default (#1560)
- docs: add KEP of Spiffe integration (#1444)
- docs: document removal of hooks in v0.17 (#1573)
- build(deps): bump github.com/opencontainers/runc from 1.1.10 to 1.1.12 (#1575)
- build(deps-dev): bump nokogiri from 1.16.0 to 1.16.2 in /docs (#1576)
- scripts/test-infra: bump golangci-lint to v1.56.1 (#1580)
- scripts/test-infra: bump k8s logcheck to v0.8.1 (#1583)
- Bump Go to v1.22 (#1579)
- scripts/test-infra: bump helm to v3.14.0 (#1582)
- source/kernel: add unit tests for kernel version parsing (#1588)
- helm: add priorityClassName option (#1587)
- source/pci: add unit test for the pci source (#1589)
- nfd-master: log errors on node update retries (#1591)
- source/system: Add reading vendor information (#1574)
- source/cpu: fix build tags on rdt discovery (#1594)
- helm: add ability to use a custom issuer (#1598)
- fix hook issue (#1604)
- generate: update autogenerate tools (#1606)
- apis/nfd/validate: use testify/assert for checking test results (#1590)
- Update readme to v0.15.2 release (#1611)
- Update generate scripts to use latest code_gen functions (#1605)
- nfd-master: mark the -crd-controller flag as deprecated (#1612)
- build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#1613)
- Use close to signal stop channedl in worker and topology-updater (#1620)
- nfd-master: fix memory leak in nfd api-controller (#1615)
- Update readme to v0.15.3 release (#1628)
- Add FeatureGate framework to handle new features (#1623)
- replace AhmedGrati account with TessaIO as reviewer (#1630)
- add swap support in nfd (#1585)
- nfd-master: check if node exists before trying update (#1595)
- Remove references to -enable-nodefeature-api flag (#1632)
- Add owner reference to NRT object (#1602)
- nfd-master: retry node updates indefinitely (#1596)
- nfd-worker: Add liveness probe (#1609)
- topology-updater: Set APIVersion, Kind in the OwnerReference explicitly (#1634)
- helm: fix invalid name of host-swaps volume (#1635)
- nfd-master: do nfd API scheme registration in an init function (#1641)
- chore/deployment: add resources requests and limits for helm and Kustomize (#1631)
- nfd-topology-updater: Add liveness probe (#1643)
- nfd-master: get node object only once when updating node (#1652)
- chore/deploy: make interval property in PodMonitor configurable (#1639)
- nfd-master: protect node updater pool queueing with a lock (#1642)
- nfd-master: prevent crash on empty config struct (#1657)
- Update readme to v0.15.4 release (#1650)
- Tidy up usage of channels for signaling (#1656)
- nfd-master: implement opts for modifying NfdMaster instance (#1658)
- nfd-master: parse kubeconfig even with NoPublish set (#1655)
- Move NFD api to a separate go mod (#1600)
- api/nfd: run go mod tidy (#1661)
- Fix Make generate (#1662)
- apis/nfd/validate: loosen validation of feature annotations (#1633)
- nfd-master: use separate k8s api clients for each updater (#1653)
- nfd-master: stop node-updater pool before reconfiguring api-controller (#1660)
- build(deps): bump golang.org/x/net from 0.20.0 to 0.23.0 (#1665)
- chore/nfd-master: remove warnings in nfd-master unit tests file (#1668)
- build(deps): bump golang.org/x/net from 0.20.0 to 0.23.0 in api/nfd (#1666)
- apis/nfd: add unit tests for match name functions (#1667)
- apis/nfd: no error on ops that never match (#1670)
- api/nfd: use varargs in the NewInstanceFeatures helper (#1669)
- scripts/test-infra: bump golangci-lint to v1.57.2 (#1674)
- add ARMv7 support (#1659)
- docs: document trade-offs in memory configuration (#1651)
- go.mod: bump kubernetes to v1.30 (#1675)
- cloudbuild.yaml: change machine type to e1-highcpu-32 (#1678)
- test/e2e: stop importing kubernetes test/e2e (#1680)
- hack/init-buildx.sh: fix broken patter matching (#1683)
- Disable armv7 builds (#1677)
- cloudbu...