<!DOCTYPE html><htmllang="en"dir="auto"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=no"><metaname="description"content="Deployment with Helm Table of contents Deployment with Helm Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0...."><metaname="revised"content=""><metaname="author"content="Kubernetes SIGs"><metaname="generator"content="jekyll-rtd-theme v2.0.10"><metaname="theme-color"content="#2980b9"><title>Helm · Node Feature Discovery</title><metaname="twitter:title"content="Helm · Node Feature Discovery"><metaname="twitter:description"content="Deployment with Helm Table of contents Deployment with Helm Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0...."><metaname="twitter:card"content="summary"><metaname="twitter:site"content="@Kubernetes SIGs"><metaname="twitter:url"content="https://kubernetes-sigs.github.com/node-feature-discovery/v0.17/deployment/helm.html"><metaname="twitter:creator"content="@jekyll-rtd-theme v2.0.10"><metaproperty="og:title"content="Helm · Node Feature Discovery"><metaproperty="og:description"content="Deployment with Helm Table of contents Deployment with Helm Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0...."><metaproperty="og:locale"content="en"><metaproperty="og:url"content="https://kubernetes-sigs.github.com/node-feature-discovery/v0.17/deployment/helm.html"><metaproperty="og:type"content="article"><metaproperty="article:author"content="Kubernetes SIGs"><metaproperty="article:published_time"content="2016-07-23T05:07:52+00:00"><metaproperty="article:modified_time"content="2025-01-08T14:21:34+00:00"><scripttype="application/ld+json">{"@context":"https://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://kubernetes-sigs.github.com/node-feature-discovery/v0.17/deployment/helm.html"},"headline":"Helm · Node Feature Discovery","image":[],"author":{"@type":"Person","name":"Kubernetes SIGs"},"datePublished":"2016-07-23T05:07:52+00:00","dateModified":"2025-01-08T14:21:34+00:00","publisher":{"@type":"Organization","name":"Kubernetes SIGs","logo":{"@type":"ImageObject","url":"https://avatars.githubusercontent.com/u/36015203?v=4"}},"description":"Deployment with Helm Table of contents Deployment with Helm Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0...."}</script><linkrel="dns-prefetch"href="https://cdn.jsdelivr.net"><linkrel="prev"href="https://kubernetes-sigs.github.com/node-feature-discovery/v0.17/deployment/kustomize.html"><linkrel="next"href="https://kubernetes-sigs.github.com/node-feature-discovery/v0.17/deployment/operator.html"><linkrel="canonical"href="https://kubernetes-sigs.github.com/node-feature-discovery/v0.17/deployment/helm.html"><linkrel="icon"type="image/svg+xml"href="/node-feature-discovery/v0.17/assets/images/favicon.svg"><linkrel="icon"type="image/png"href="/node-feature-discovery/v0.17/assets/images/favicon-16x16.png"sizes="16x16"><linkrel="icon"type="image/png"href="/node-feature-discovery/v0.17/assets/images/favicon-32x32.png"sizes="32x32"><linkrel="icon"type="image/png"href="/node-feature-discovery/v0.17/assets/images/favicon-96x96.png"sizes="96x96"><linkrel="mask-icon"href="/node-feature-discovery/v0.17/assets/images/favicon.svg"color="#2980b9"><linkrel="apple-touch-icon"href="/node-feature-discovery/v0.17/assets/images/apple-touch-icon-300x300.jpg"><linkrel="stylesheet"href="https://cdn.jsdelivr.net/gh/rundocs/jekyll-rtd-theme@2.0.10/assets/css/theme.min.css"><style>@media(min-width:1280px){.content-wrap{max-width:1200px}}</style><script>window.ui={title:"NodeFeatureDiscovery",baseurl:"/node-feature-discovery/v0.17",i18n:{search_results:"SearchResults",search_results_found:"Searchfinished,found#page(s)matchingthesearchquery.",search_r
</code></pre></div></div><p>To install the latest development version you need to clone the NFD Git repository and install from there.</p><divclass="language-bash highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code>git clone https://github.com/kubernetes-sigs/node-feature-discovery/
</code></pre></div></div><p>See the <ahref="#configuration">configuration</a> section below for instructions how to alter the deployment parameters.</p><h2id="configuration">Configuration</h2><p>You can override values from <codeclass="language-plaintext highlighter-rouge notranslate">values.yaml</code> and provide a file with custom values:</p><divclass="language-bash highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="nb">export </span><spanclass="nv">NFD_NS</span><spanclass="o">=</span>node-feature-discovery
</code></pre></div></div><p>To specify each parameter separately you can provide them to helm install command:</p><divclass="language-bash highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="nb">export </span><spanclass="nv">NFD_NS</span><spanclass="o">=</span>node-feature-discovery
</code></pre></div></div><h2id="upgrading-the-chart">Upgrading the chart</h2><p>To upgrade the <codeclass="language-plaintext highlighter-rouge notranslate">node-feature-discovery</code> deployment to v0.17.0 via Helm.</p><h3id="from-v07-and-older">From v0.7 and older</h3><p>Please see the <ahref="https://kubernetes-sigs.github.io/node-feature-discovery/v0.7/get-started/deployment-and-usage.html#uninstallation">uninstallation guide</a>. And then follow the standard <ahref="#deployment">deployment instructions</a>.</p><h3id="from-v08---v011">From v0.8 - v0.11</h3><p>Helm deployment of NFD was introduced in v0.8.0.</p><divclass="language-bash highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="nb">export </span><spanclass="nv">NFD_NS</span><spanclass="o">=</span>node-feature-discovery
<spanclass="c"># Uninstall the old NFD deployment</span>
</code></pre></div></div><h3id="from-v012---v013">From v0.12 - v0.13</h3><p>In v0.12 the <codeclass="language-plaintext highlighter-rouge notranslate">NodeFeature</code> CRD was introduced as experimental. The API was not enabled by default.</p><divclass="language-bash highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="nb">export </span><spanclass="nv">NFD_NS</span><spanclass="o">=</span>node-feature-discovery
</code></pre></div></div><h3id="from-v014">From v0.14+</h3><p>As of version v0.14 the Helm chart is the primary deployment method for NFD, and the CRD <codeclass="language-plaintext highlighter-rouge notranslate">NodeFeature</code> is enabled by default.</p><divclass="language-bash highlighter-rouge notranslate"><divclass="highlight"><preclass="highlight"><code><spanclass="nb">export </span><spanclass="nv">NFD_NS</span><spanclass="o">=</span>node-feature-discovery
</code></pre></div></div><p>The command removes all the Kubernetes components associated with the chart and deletes the release. It also runs a post-delete hook that cleans up the nodes of all labels, annotations, taints and extended resources that were created by NFD.</p><h2id="chart-parameters">Chart parameters</h2><p>To tailor the deployment of the Node Feature Discovery to your needs following Chart parameters are available.</p><h3id="general-parameters">General parameters</h3><table><thead><tr><th>Name</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">image.repository</code></td><td>string</td><td><codeclass="language-plaintext highlighter-rouge notranslate">registry.k8s.io/nfd/node-feature-discovery</code></td><td>NFD image repository</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">image.tag</code></td><td>string</td><td><codeclass="language-plaintext highlighter-rouge notranslate">v0.17.0</code></td><td>NFD image tag</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">image.pullPolicy</code></td><td>string</td><td><codeclass="language-plaintext highlighter-rouge notranslate">Always</code></td><td>Image pull policy</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">imagePullSecrets</code></td><td>array</td><td>[]</td><td>ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. <ahref="https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod">More info</a>.</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">nameOverride</code></td><td>string</td><td></td><td>Override the name of the chart</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">fullnameOverride</code></td><td>string</td><td></td><td>Override a default fully qualified app name</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">featureGates.NodeFeatureGroupAPI</code></td><td>bool</td><td>false</td><td>Enable the <ahref="/node-feature-discovery/v0.17/usage/custom-resources.html#nodefeaturegroup">NodeFeatureGroup</a> CRD API.</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">featureGates.DisableAutoPrefix</code></td><td>bool</td><td>false</td><td>Enable <ahref="/node-feature-discovery/v0.17/reference/feature-gates.html#disableautoprefix">DisableAutoPrefix</a> feature gate. Disables automatic prefixing of unprefixed labels, annotations and extended resources.</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">prometheus.enable</code></td><td>bool</td><td>false</td><td>Specifies whether to expose metrics using prometheus operator</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">prometheus.labels</code></td><td>dict</td><td>{}</td><td>Specifies labels for use with the prometheus operator to control how it is selected</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">prometheus.scrapeInterval</code></td><td>string</td><td>10s</td><td>Specifies the interval by which metrics are scraped</td></tr><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">priorityClassName</code></td><td>string</td><td></td><td>The name of the PriorityClass to be used for the NFD pods.</td></tr></tbody></table><p>Metrics are configured to be exposed using prometheus operator API's by default. If you want to expose metrics using the prometheus operator API's you need to install the prometheus operator in your cluster.</p><h3id="master-pod-parameters">Master pod parameters</h3><table><thead><tr><th>Name</th><th>Type</th><th>Default</th><th>Description</th></tr></thead><tbody><tr><td><codeclass="language-plaintext highlighter-rouge notranslate">master.*</c