Skip to content

Comments

feat(helm): update node-feature-discovery ( 0.17.4 → 0.18.0 )#3985

Merged
kashalls merged 1 commit intomainfrom
renovate/node-feature-discovery-0.x
Oct 3, 2025
Merged

feat(helm): update node-feature-discovery ( 0.17.4 → 0.18.0 )#3985
kashalls merged 1 commit intomainfrom
renovate/node-feature-discovery-0.x

Conversation

@layla-bot
Copy link
Contributor

@layla-bot layla-bot bot commented Oct 2, 2025

This PR contains the following updates:

Package Update Change
node-feature-discovery minor 0.17.4 -> 0.18.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

kubernetes-sigs/node-feature-discovery (node-feature-discovery)

v0.18.0

Compare Source

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


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@layla-bot layla-bot bot requested a review from kashalls as a code owner October 2, 2025 14:16
@layla-bot layla-bot bot added renovate/helm type/minor area/kubernetes Changes made in the kubernetes directory labels Oct 2, 2025
@layla-bot
Copy link
Contributor Author

layla-bot bot commented Oct 2, 2025

--- HelmRelease: kube-system/node-feature-discovery DaemonSet: kube-system/node-feature-discovery-worker

+++ HelmRelease: kube-system/node-feature-discovery DaemonSet: kube-system/node-feature-discovery-worker

@@ -21,33 +21,36 @@

       labels:
         app.kubernetes.io/name: node-feature-discovery
         app.kubernetes.io/instance: node-feature-discovery
         role: worker
     spec:
       dnsPolicy: ClusterFirstWithHostNet
+      imagePullSecrets: null
       serviceAccountName: node-feature-discovery-worker
       securityContext: {}
       hostNetwork: false
       containers:
       - name: worker
         securityContext:
           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
           runAsNonRoot: true
-        image: registry.k8s.io/nfd/node-feature-discovery:v0.17.4
+        image: registry.k8s.io/nfd/node-feature-discovery:v0.18.0
         imagePullPolicy: IfNotPresent
         livenessProbe:
-          grpc:
-            port: 8082
+          httpGet:
+            path: /healthz
+            port: http
           initialDelaySeconds: 10
         readinessProbe:
-          grpc:
-            port: 8082
+          httpGet:
+            path: /healthz
+            port: http
           initialDelaySeconds: 5
           failureThreshold: 10
         env:
         - name: NODE_NAME
           valueFrom:
             fieldRef:
@@ -67,19 +70,16 @@

             cpu: 5m
             memory: 64Mi
         command:
         - nfd-worker
         args:
         - -feature-gates=NodeFeatureGroupAPI=false
-        - -metrics=8081
-        - -grpc-health=8082
+        - -port=8080
         ports:
-        - containerPort: 8081
-          name: metrics
-        - containerPort: 8082
-          name: health
+        - containerPort: 8080
+          name: http
         volumeMounts:
         - name: host-boot
           mountPath: /host-boot
           readOnly: true
         - name: host-os-release
           mountPath: /host-etc/os-release
--- HelmRelease: kube-system/node-feature-discovery Deployment: kube-system/node-feature-discovery-master

+++ HelmRelease: kube-system/node-feature-discovery Deployment: kube-system/node-feature-discovery-master

@@ -21,12 +21,14 @@

     metadata:
       labels:
         app.kubernetes.io/name: node-feature-discovery
         app.kubernetes.io/instance: node-feature-discovery
         role: master
     spec:
+      dnsPolicy: ClusterFirstWithHostNet
+      imagePullSecrets: null
       serviceAccountName: node-feature-discovery
       enableServiceLinks: false
       securityContext: {}
       hostNetwork: false
       containers:
       - name: master
@@ -34,30 +36,31 @@

           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
           runAsNonRoot: true
-        image: registry.k8s.io/nfd/node-feature-discovery:v0.17.4
+        image: registry.k8s.io/nfd/node-feature-discovery:v0.18.0
         imagePullPolicy: IfNotPresent
         startupProbe:
-          grpc:
-            port: 8082
+          httpGet:
+            path: /healthz
+            port: http
           failureThreshold: 30
         livenessProbe:
-          grpc:
-            port: 8082
+          httpGet:
+            path: /healthz
+            port: http
         readinessProbe:
-          grpc:
-            port: 8082
+          httpGet:
+            path: /healthz
+            port: http
           failureThreshold: 10
         ports:
-        - containerPort: 8081
-          name: metrics
-        - containerPort: 8082
-          name: health
+        - containerPort: 8080
+          name: http
         env:
         - name: NODE_NAME
           valueFrom:
             fieldRef:
               fieldPath: spec.nodeName
         command:
@@ -68,14 +71,13 @@

           requests:
             cpu: 100m
             memory: 128Mi
         args:
         - -enable-leader-election
         - -feature-gates=NodeFeatureGroupAPI=false
-        - -metrics=8081
-        - -grpc-health=8082
+        - -port=8080
         volumeMounts:
         - name: nfd-master-conf
           mountPath: /etc/kubernetes/node-feature-discovery
           readOnly: true
       volumes:
       - name: nfd-master-conf
@@ -86,28 +88,17 @@

             path: nfd-master.conf
       affinity:
         nodeAffinity:
           preferredDuringSchedulingIgnoredDuringExecution:
           - preference:
               matchExpressions:
-              - key: node-role.kubernetes.io/master
-                operator: In
-                values:
-                - ''
-            weight: 1
-          - preference:
-              matchExpressions:
               - key: node-role.kubernetes.io/control-plane
                 operator: In
                 values:
                 - ''
             weight: 1
       tolerations:
       - effect: NoSchedule
-        key: node-role.kubernetes.io/master
-        operator: Equal
-        value: ''
-      - effect: NoSchedule
         key: node-role.kubernetes.io/control-plane
         operator: Equal
         value: ''
 
--- HelmRelease: kube-system/node-feature-discovery Deployment: kube-system/node-feature-discovery-gc

+++ HelmRelease: kube-system/node-feature-discovery Deployment: kube-system/node-feature-discovery-gc

@@ -23,18 +23,29 @@

         app.kubernetes.io/name: node-feature-discovery
         app.kubernetes.io/instance: node-feature-discovery
         role: gc
     spec:
       serviceAccountName: node-feature-discovery-gc
       dnsPolicy: ClusterFirstWithHostNet
+      imagePullSecrets: null
       securityContext: {}
       hostNetwork: false
       containers:
       - name: gc
-        image: registry.k8s.io/nfd/node-feature-discovery:v0.17.4
+        image: registry.k8s.io/nfd/node-feature-discovery:v0.18.0
         imagePullPolicy: IfNotPresent
+        livenessProbe:
+          httpGet:
+            path: /healthz
+            port: http
+          initialDelaySeconds: 10
+        readinessProbe:
+          httpGet:
+            path: /healthz
+            port: http
+          initialDelaySeconds: 5
         env:
         - name: NODE_NAME
           valueFrom:
             fieldRef:
               fieldPath: spec.nodeName
         command:
@@ -52,9 +63,9 @@

           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
           runAsNonRoot: true
         ports:
-        - name: metrics
-          containerPort: 8081
+        - name: http
+          containerPort: 8080
 
--- HelmRelease: kube-system/node-feature-discovery Job: kube-system/node-feature-discovery-prune

+++ HelmRelease: kube-system/node-feature-discovery Job: kube-system/node-feature-discovery-prune

@@ -18,49 +18,45 @@

         app.kubernetes.io/name: node-feature-discovery
         app.kubernetes.io/instance: node-feature-discovery
         app.kubernetes.io/managed-by: Helm
         role: prune
     spec:
       serviceAccountName: node-feature-discovery-prune
+      imagePullSecrets: null
       containers:
       - name: nfd-master
         securityContext:
           allowPrivilegeEscalation: false
           capabilities:
             drop:
             - ALL
           readOnlyRootFilesystem: true
           runAsNonRoot: true
-        image: registry.k8s.io/nfd/node-feature-discovery:v0.17.4
+        image: registry.k8s.io/nfd/node-feature-discovery:v0.18.0
         imagePullPolicy: IfNotPresent
         command:
         - nfd-master
         args:
         - -prune
       restartPolicy: Never
       affinity:
         nodeAffinity:
           preferredDuringSchedulingIgnoredDuringExecution:
           - preference:
               matchExpressions:
-              - key: node-role.kubernetes.io/master
-                operator: In
-                values:
-                - ''
-            weight: 1
-          - preference:
-              matchExpressions:
               - key: node-role.kubernetes.io/control-plane
                 operator: In
                 values:
                 - ''
             weight: 1
       tolerations:
       - effect: NoSchedule
-        key: node-role.kubernetes.io/master
-        operator: Equal
-        value: ''
-      - effect: NoSchedule
         key: node-role.kubernetes.io/control-plane
         operator: Equal
         value: ''
+      resources:
+        limits:
+          memory: 4Gi
+        requests:
+          cpu: 100m
+          memory: 128Mi
 

@layla-bot
Copy link
Contributor Author

layla-bot bot commented Oct 2, 2025

--- kubernetes/apps/kube-system/node-feature-discovery/app Kustomization: kube-system/node-feature-discovery HelmRelease: kube-system/node-feature-discovery

+++ kubernetes/apps/kube-system/node-feature-discovery/app Kustomization: kube-system/node-feature-discovery HelmRelease: kube-system/node-feature-discovery

@@ -12,13 +12,13 @@

   chart:
     spec:
       chart: node-feature-discovery
       sourceRef:
         kind: HelmRepository
         name: node-feature-discovery
-      version: 0.17.4
+      version: 0.18.0
   install:
     crds: CreateReplace
     remediation:
       retries: 3
   interval: 1h
   upgrade:

@kashalls kashalls merged commit afdd802 into main Oct 3, 2025
12 checks passed
@layla-bot layla-bot bot deleted the renovate/node-feature-discovery-0.x branch October 3, 2025 01:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/kubernetes Changes made in the kubernetes directory renovate/helm type/minor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant