mirror of
https://github.com/kubernetes-sigs/node-feature-discovery.git
synced 2025-03-06 16:57:10 +00:00
44 lines
No EOL
60 KiB
HTML
44 lines
No EOL
60 KiB
HTML
<!DOCTYPE html> <html lang="en" dir="auto"> <head><meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=no"> <meta name="description" content="Deployment with Helm Table of contents Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0.8 - v0.11 From v0.12 ..."> <meta name="revised" content=""> <meta name="author" content="Kubernetes SIGs"> <meta name="generator" content="jekyll-rtd-theme v2.0.10"><meta name="theme-color" content="#2980b9"> <title>Helm · Node Feature Discovery</title> <meta name="twitter:title" content="Helm · Node Feature Discovery"> <meta name="twitter:description" content="Deployment with Helm Table of contents Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0.8 - v0.11 From v0.12 ..."> <meta name="twitter:card" content="summary"> <meta name="twitter:site" content="@Kubernetes SIGs"> <meta name="twitter:url" content="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/helm.html"> <meta name="twitter:creator" content="@jekyll-rtd-theme v2.0.10"> <meta property="og:title" content="Helm · Node Feature Discovery"> <meta property="og:description" content="Deployment with Helm Table of contents Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0.8 - v0.11 From v0.12 ..."> <meta property="og:locale" content="en"> <meta property="og:url" content="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/helm.html"> <meta property="og:type" content="article"> <meta property="article:author" content="Kubernetes SIGs"> <meta property="article:published_time" content="2016-07-23T05:07:52+00:00"> <meta property="article:modified_time" content="2024-08-14T09:33:47+00:00"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/helm.html" }, "headline": "Helm · Node Feature Discovery", "image": [], "author": { "@type": "Person", "name": "Kubernetes SIGs" }, "datePublished": "2016-07-23T05:07:52+00:00", "dateModified": "2024-08-14T09:33:47+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 Prerequisites Deployment Configuration Upgrading the chart From v0.7 and older From v0.8 - v0.11 From v0.12 ..." } </script> <link rel="dns-prefetch" href="https://cdn.jsdelivr.net"><link rel="prev" href="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/kustomize.html"><link rel="next" href="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/operator.html"><link rel="canonical" href="https://kubernetes-sigs.github.com/node-feature-discovery/master/deployment/helm.html"><link rel="icon" type="image/svg+xml" href="/node-feature-discovery/master/assets/images/favicon.svg"><link rel="icon" type="image/png" href="/node-feature-discovery/master/assets/images/favicon-16x16.png" sizes="16x16"> <link rel="icon" type="image/png" href="/node-feature-discovery/master/assets/images/favicon-32x32.png" sizes="32x32"> <link rel="icon" type="image/png" href="/node-feature-discovery/master/assets/images/favicon-96x96.png" sizes="96x96"><link rel="mask-icon" href="/node-feature-discovery/master/assets/images/favicon.svg" color="#2980b9"><link rel="apple-touch-icon" href="/node-feature-discovery/master/assets/images/apple-touch-icon-300x300.jpg"> <link rel="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: "Node Feature Discovery", baseurl: "/node-feature-discovery/master", i18n: { search_results: "Search Results", search_results_found: "Search finished, found # page(s) matching the search query.", search_results_not_found: "Your search did not match any documents, please make sure that all characters are spelled correctly!" } }; </script> </head> <body class="container"><div class="sidebar-wrap overflow-hidden"> <div class="sidebar height-full overflow-y-scroll overflow-x-hidden"> <div class="header d-flex flex-column p-3 text-center"> <div class="title pb-1"> <a class="h4 no-underline py-1 px-2 rounded-1" href="/node-feature-discovery/master/" title="Documentation of Node Feature Discovery - a Kubernetes add-on for discovering and advertising hardware features and system configuration in the cluster."> <i class="fa fa-home"></i> Node Feature Discovery </a> </div> <span class="version">master</span> <form class="search pt-2" action="/node-feature-discovery/master/search.html" method="get" autocomplete="off"> <input class="form-control input-block input-sm" type="text" name="q" placeholder="Search docs..."> </form> </div> <div class="toctree py-2" data-spy="affix" role="navigation" aria-label="main navigation"> <ul> </ul> <a class="caption d-block text-uppercase no-wrap px-2 py-0" href="/node-feature-discovery/master/get-started/"> Get started </a><ul> <li class="toc level-1 " data-sort="1" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/get-started/introduction.html">1. Introduction</a> </li> <li class="toc level-1 " data-sort="2" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/get-started/quick-start.html">2. Quick start</a> </li></ul> <a class="caption d-block text-uppercase no-wrap px-2 py-0" href="/node-feature-discovery/master/deployment/"> Deployment </a><ul> <li class="toc level-1 " data-sort="1" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/deployment/image-variants.html">1. Image variants</a> </li> <li class="toc level-1 " data-sort="2" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/deployment/kustomize.html">2. Kustomize</a> </li> <li class="toc level-1 current" data-sort="3" data-level="1"> <a class="d-flex flex-items-baseline current" href="/node-feature-discovery/master/deployment/helm.html">3. Helm</a> </li> <li class="toc level-1 " data-sort="4" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/deployment/operator.html">4. NFD Operator</a> </li> <li class="toc level-1 " data-sort="5" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/deployment/tls.html">5. TLS authentication</a> </li> <li class="toc level-1 " data-sort="6" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/deployment/uninstallation.html">6. Uninstallation</a> </li> <li class="toc level-1 " data-sort="7" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/deployment/metrics.html">7. Metrics</a> </li></ul> <a class="caption d-block text-uppercase no-wrap px-2 py-0" href="/node-feature-discovery/master/usage/"> Usage </a><ul> <li class="toc level-1 " data-sort="1" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/features.html">1. Feature labels</a> </li> <li class="toc level-1 " data-sort="2" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/using-labels.html">2. Using node labels</a> </li> <li class="toc level-1 " data-sort="3" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/nfd-master.html">3. NFD-Master</a> </li> <li class="toc level-1 " data-sort="4" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/nfd-worker.html">4. NFD-Worker</a> </li> <li class="toc level-1 " data-sort="5" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/nfd-topology-updater.html">5. NFD-Topology-Updater</a> </li> <li class="toc level-1 " data-sort="6" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/nfd-gc.html">6. NFD-Garbage-Collector</a> </li> <li class="toc level-1 " data-sort="7" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/custom-resources.html">7. CRDs</a> </li> <li class="toc level-1 " data-sort="8" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/customization-guide.html">8. Customization guide</a> </li> <li class="toc level-1 " data-sort="9" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/examples-and-demos.html">9. Examples and demos</a> </li> <li class="toc level-1 " data-sort="10" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/usage/kubectl-plugin.html">10. Kubectl plugin</a> </li></ul> <a class="caption d-block text-uppercase no-wrap px-2 py-0" href="/node-feature-discovery/master/reference/"> Reference </a><ul> <li class="toc level-1 " data-sort="1" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/master-commandline-reference.html">1. Master cmdline reference</a> </li> <li class="toc level-1 " data-sort="2" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/worker-commandline-reference.html">2. Worker cmdline reference</a> </li> <li class="toc level-1 " data-sort="3" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/master-configuration-reference.html">3. Master config reference</a> </li> <li class="toc level-1 " data-sort="4" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/worker-configuration-reference.html">4. Worker config reference</a> </li> <li class="toc level-1 " data-sort="5" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/topology-updater-commandline-reference.html">5. Topology Updater Cmdline Reference</a> </li> <li class="toc level-1 " data-sort="6" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/topology-updater-configuration-reference.html">6. Topology-Updater config reference</a> </li> <li class="toc level-1 " data-sort="7" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/gc-commandline-reference.html">7. Garbage Collector Cmdline Reference</a> </li> <li class="toc level-1 " data-sort="8" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/plugin-commandline-reference.html">8. Kubectl plugin cmdline reference</a> </li> <li class="toc level-1 " data-sort="9" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/versions.html">9. Versions</a> </li> <li class="toc level-1 " data-sort="10" data-level="1"> <a class="d-flex flex-items-baseline " href="/node-feature-discovery/master/reference/feature-gates.html">10. Feature Gates</a> </li></ul> <a class="caption d-block text-uppercase no-wrap px-2 py-0" href="/node-feature-discovery/master/developer-guide/"> Developer guide </a><ul> </ul> <a class="caption d-block text-uppercase no-wrap px-2 py-0" href="/node-feature-discovery/master/contributing/"> Contributing </a><ul> </ul> </div> </div> </div> <div class="content-wrap"> <div class="header d-flex flex-justify-between p-2 hide-lg hide-xl" aria-label="top navigation"> <button id="toggle" aria-label="Toggle menu" class="btn-octicon p-2 m-0 text-white" type="button"> <i class="fa fa-bars"></i> </button> <div class="title flex-1 d-flex flex-justify-center"> <a class="h4 no-underline py-1 px-2 rounded-1" href="/node-feature-discovery/master/">Node Feature Discovery</a> </div> </div> <div class="content p-3 p-sm-5"> <div class="navigation-top d-flex flex-justify-between"> <ul class="breadcrumb" role="navigation" aria-label="breadcrumbs navigation"> <li class="breadcrumb-item"> <a class="no-underline" href="/node-feature-discovery/master/" title="/"> <i class="fa fa-home"></i> </a> </li><li class="breadcrumb-item" ><a href="/node-feature-discovery/master/deployment/">deployment</a></li><li class="breadcrumb-item" aria-current="page">helm.md</li></ul> <a class="edit" href="https://github.com/kubernetes-sigs/node-feature-discovery/edit/gh-pages/deployment/helm.md" title="Edit on GitHub" rel="noreferrer" target="_blank"> <i class="fa fa-edit"></i> </a> </div> <hr> <div role="main" itemscope="itemscope" itemtype="https://schema.org/Article"> <div class="markdown-body" itemprop="articleBody"> <h1 class="no_toc" id="deployment-with-helm">Deployment with Helm</h1> <h2 class="no_toc text-delta" id="table-of-contents">Table of contents</h2> <ol id="markdown-toc"> <li><a href="#prerequisites" id="markdown-toc-prerequisites">Prerequisites</a></li> <li><a href="#deployment" id="markdown-toc-deployment">Deployment</a></li> <li><a href="#configuration" id="markdown-toc-configuration">Configuration</a></li> <li><a href="#upgrading-the-chart" id="markdown-toc-upgrading-the-chart">Upgrading the chart</a> <ol> <li><a href="#from-v07-and-older" id="markdown-toc-from-v07-and-older">From v0.7 and older</a></li> <li><a href="#from-v08---v011" id="markdown-toc-from-v08---v011">From v0.8 - v0.11</a></li> <li><a href="#from-v012---v013" id="markdown-toc-from-v012---v013">From v0.12 - v0.13</a></li> <li><a href="#from-v014" id="markdown-toc-from-v014">From v0.14+</a></li> </ol> </li> <li><a href="#uninstalling-the-chart" id="markdown-toc-uninstalling-the-chart">Uninstalling the chart</a></li> <li><a href="#chart-parameters" id="markdown-toc-chart-parameters">Chart parameters</a> <ol> <li><a href="#general-parameters" id="markdown-toc-general-parameters">General parameters</a></li> <li><a href="#master-pod-parameters" id="markdown-toc-master-pod-parameters">Master pod parameters</a></li> <li><a href="#worker-pod-parameters" id="markdown-toc-worker-pod-parameters">Worker pod parameters</a></li> <li><a href="#topology-updater-parameters" id="markdown-toc-topology-updater-parameters">Topology updater parameters</a></li> <li><a href="#garbage-collector-parameters" id="markdown-toc-garbage-collector-parameters">Garbage collector parameters</a></li> </ol> </li> </ol> <hr /> <p>Node Feature Discovery provides a Helm chart to manage its deployment.</p> <blockquote> <p><strong>NOTE:</strong> NFD is not ideal for other Helm charts to depend on as that may result in multiple parallel NFD deployments in the same cluster which is not fully supported by the NFD Helm chart.</p> </blockquote> <h2 id="prerequisites">Prerequisites</h2> <p><a href="https://helm.sh/">Helm package manager</a> should be installed.</p> <h2 id="deployment">Deployment</h2> <p>To install the latest stable version:</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
|
||
helm repo add nfd https://kubernetes-sigs.github.io/node-feature-discovery/charts
|
||
helm repo update
|
||
helm <span class="nb">install </span>nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--create-namespace</span> <span class="nt">--generate-name</span>
|
||
</code></pre> </div></div> <p>To install the latest development version you need to clone the NFD Git repository and install from there.</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/kubernetes-sigs/node-feature-discovery/
|
||
<span class="nb">cd </span>node-feature-discovery/deployment/helm
|
||
<span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
|
||
helm <span class="nb">install </span>node-feature-discovery ./node-feature-discovery/ <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--create-namespace</span>
|
||
</code></pre> </div></div> <p>See the <a href="#configuration">configuration</a> section below for instructions how to alter the deployment parameters.</p> <h2 id="configuration">Configuration</h2> <p>You can override values from <code class="language-plaintext highlighter-rouge notranslate">values.yaml</code> and provide a file with custom values:</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
|
||
helm <span class="nb">install </span>nfd/node-feature-discovery <span class="nt">-f</span> <path/to/custom/values.yaml> <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--create-namespace</span>
|
||
</code></pre> </div></div> <p>To specify each parameter separately you can provide them to helm install command:</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
|
||
helm <span class="nb">install </span>nfd/node-feature-discovery <span class="nt">--set</span> <span class="nv">nameOverride</span><span class="o">=</span>NFDinstance <span class="nt">--set</span> master.replicaCount<span class="o">=</span>2 <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--create-namespace</span>
|
||
</code></pre> </div></div> <h2 id="upgrading-the-chart">Upgrading the chart</h2> <p>To upgrade the <code class="language-plaintext highlighter-rouge notranslate">node-feature-discovery</code> deployment to master via Helm.</p> <h3 id="from-v07-and-older">From v0.7 and older</h3> <p>Please see the <a href="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 <a href="#deployment">deployment instructions</a>.</p> <h3 id="from-v08---v011">From v0.8 - v0.11</h3> <p>Helm deployment of NFD was introduced in v0.8.0.</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
|
||
<span class="c"># Uninstall the old NFD deployment</span>
|
||
helm uninstall node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
|
||
<span class="c"># Update Helm repository</span>
|
||
helm repo update
|
||
<span class="c"># Install the new NFD deployment</span>
|
||
helm upgrade <span class="nt">--install</span> node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--set</span> master.enable<span class="o">=</span><span class="nb">false</span>
|
||
<span class="c"># Wait for NFD Worker to be ready</span>
|
||
kubectl <span class="nb">wait</span> <span class="nt">--timeout</span><span class="o">=</span><span class="nt">-1s</span> <span class="nt">--for</span><span class="o">=</span><span class="nv">condition</span><span class="o">=</span>ready pod <span class="nt">-l</span> app.kubernetes.io/name<span class="o">=</span>node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
|
||
<span class="c"># Enable the NFD Master</span>
|
||
helm upgrade <span class="nt">--install</span> node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--set</span> master.enable<span class="o">=</span><span class="nb">true</span>
|
||
</code></pre> </div></div> <h3 id="from-v012---v013">From v0.12 - v0.13</h3> <p>In v0.12 the <code class="language-plaintext highlighter-rouge notranslate">NodeFeature</code> CRD was introduced as experimental. The API was not enabled by default.</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
|
||
<span class="c"># Update Helm repository</span>
|
||
helm repo update
|
||
<span class="c"># Install and upgrade CRD's</span>
|
||
kubectl apply <span class="nt">-f</span> https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/master/deployment/base/nfd-crds/nfd-api-crds.yaml
|
||
<span class="c"># Install the new NFD deployment</span>
|
||
helm upgrade node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--set</span> master.enable<span class="o">=</span><span class="nb">false</span>
|
||
<span class="c"># Wait for NFD Worker to be ready</span>
|
||
kubectl <span class="nb">wait</span> <span class="nt">--timeout</span><span class="o">=</span><span class="nt">-1s</span> <span class="nt">--for</span><span class="o">=</span><span class="nv">condition</span><span class="o">=</span>ready pod <span class="nt">-l</span> app.kubernetes.io/name<span class="o">=</span>node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
|
||
<span class="c"># Enable the NFD Master</span>
|
||
helm upgrade node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span> <span class="nt">--set</span> master.enable<span class="o">=</span><span class="nb">true</span>
|
||
</code></pre> </div></div> <h3 id="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 <code class="language-plaintext highlighter-rouge notranslate">NodeFeature</code> is enabled by default.</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
|
||
<span class="c"># Update Helm repository</span>
|
||
helm repo update
|
||
<span class="c"># Install and upgrade CRD's</span>
|
||
kubectl apply <span class="nt">-f</span> https://raw.githubusercontent.com/kubernetes-sigs/node-feature-discovery/master/deployment/base/nfd-crds/nfd-api-crds.yaml
|
||
<span class="c"># Install the new NFD deployment</span>
|
||
helm upgrade node-feature-discovery nfd/node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
|
||
</code></pre> </div></div> <h2 id="uninstalling-the-chart">Uninstalling the chart</h2> <p>To uninstall the <code class="language-plaintext highlighter-rouge notranslate">node-feature-discovery</code> deployment:</p> <div class="language-bash highlighter-rouge notranslate"><div class="highlight"><pre class="highlight"><code><span class="nb">export </span><span class="nv">NFD_NS</span><span class="o">=</span>node-feature-discovery
|
||
helm uninstall node-feature-discovery <span class="nt">--namespace</span> <span class="nv">$NFD_NS</span>
|
||
</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> <h2 id="chart-parameters">Chart parameters</h2> <p>To tailor the deployment of the Node Feature Discovery to your needs following Chart parameters are available.</p> <h3 id="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><code class="language-plaintext highlighter-rouge notranslate">image.repository</code></td> <td>string</td> <td><code class="language-plaintext highlighter-rouge notranslate">gcr.io/k8s-staging-nfd/node-feature-discovery</code></td> <td>NFD image repository</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">image.tag</code></td> <td>string</td> <td><code class="language-plaintext highlighter-rouge notranslate">master</code></td> <td>NFD image tag</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">image.pullPolicy</code></td> <td>string</td> <td><code class="language-plaintext highlighter-rouge notranslate">Always</code></td> <td>Image pull policy</td> </tr> <tr> <td><code class="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. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. <a href="https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod">More info</a>.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">nameOverride</code></td> <td>string</td> <td> </td> <td>Override the name of the chart</td> </tr> <tr> <td><code class="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><code class="language-plaintext highlighter-rouge notranslate">tls.enable</code></td> <td>bool</td> <td>false</td> <td>Specifies whether to use TLS for communications between components. <strong>NOTE</strong>: this parameter is related to the deprecated gRPC API and will be removed with it in a future release.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">tls.certManager</code></td> <td>bool</td> <td>false</td> <td>If enabled, requires <a href="https://cert-manager.io/docs/">cert-manager</a> to be installed and will automatically create the required TLS certificates. <strong>NOTE</strong>: this parameter is related to the deprecated gRPC API and will be removed with it in a future release</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">tls.certManager.certManagerCertificate.issuerName</code></td> <td>string</td> <td> </td> <td>If specified, it will use a pre-existing issuer instead for the required TLS certificates. <strong>NOTE</strong>: this parameter is related to the deprecated gRPC API and will be removed with it in a future release.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">tls.certManager.certManagerCertificate.issuerKind</code></td> <td>string</td> <td> </td> <td>Specifies on what kind of issuer is used, can be either ClusterIssuer or Issuer (default). Requires <code class="language-plaintext highlighter-rouge notranslate">tls.certManager.certManagerCertificate.issuerName</code> to be set. <strong>NOTE</strong>: this parameter is related to the deprecated gRPC API and will be removed with it in a future release</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">featureGates.NodeFeatureAPI</code></td> <td>bool</td> <td>true</td> <td>Enable the <a href="/node-feature-discovery/master/usage/custom-resources.html#nodefeature">NodeFeature</a> CRD API for communicating node features. This will automatically disable the gRPC communication.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">featureGates.NodeFeatureGroupAPI</code></td> <td>bool</td> <td>false</td> <td>Enable the <a href="/node-feature-discovery/master/usage/custom-resources.html#nodefeaturegroup">NodeFeatureGroup</a> CRD API.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">featureGates.DisableAutoPrefix</code></td> <td>bool</td> <td>false</td> <td>Enable <a href="/node-feature-discovery/master/reference/feature-gates.html#disableautoprefix">DisableAutoPrefix</a> feature gate. Disables automatic prefixing of unprefixed labels, annotations and extended resources.</td> </tr> <tr> <td><code class="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><code class="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><code class="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><code class="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> <h3 id="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><code class="language-plaintext highlighter-rouge notranslate">master.*</code></td> <td>dict</td> <td> </td> <td>NFD master deployment configuration</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.enable</code></td> <td>bool</td> <td>true</td> <td>Specifies whether nfd-master should be deployed</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.port</code></td> <td>integer</td> <td> </td> <td>Specifies the TCP port that nfd-master listens for incoming requests. <strong>NOTE</strong>: this parameter is related to the deprecated gRPC API and will be removed with it in a future release</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.metricsPort</code></td> <td>integer</td> <td>8081</td> <td>Port on which to expose metrics from components to prometheus operator</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.instance</code></td> <td>string</td> <td> </td> <td>Instance name. Used to separate annotation namespaces for multiple parallel deployments</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.resyncPeriod</code></td> <td>string</td> <td> </td> <td>NFD API controller resync period.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.extraLabelNs</code></td> <td>array</td> <td>[]</td> <td>List of allowed extra label namespaces</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.resourceLabels</code></td> <td>array</td> <td>[]</td> <td>List of labels to be registered as extended resources</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.enableTaints</code></td> <td>bool</td> <td>false</td> <td>Specifies whether to enable or disable node tainting</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.crdController</code></td> <td>bool</td> <td>null</td> <td>Specifies whether the NFD CRD API controller is enabled. If not set, controller will be enabled if <code class="language-plaintext highlighter-rouge notranslate">master.instance</code> is empty.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.featureRulesController</code></td> <td>bool</td> <td>null</td> <td>DEPRECATED: use <code class="language-plaintext highlighter-rouge notranslate">master.crdController</code> instead</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.replicaCount</code></td> <td>integer</td> <td>1</td> <td>Number of desired pods. This is a pointer to distinguish between explicit zero and not specified</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.podSecurityContext</code></td> <td>dict</td> <td>{}</td> <td><a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod">PodSecurityContext</a> holds pod-level security attributes and common container settings</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.securityContext</code></td> <td>dict</td> <td>{}</td> <td>Container <a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container">security settings</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.serviceAccount.create</code></td> <td>bool</td> <td>true</td> <td>Specifies whether a service account should be created</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.serviceAccount.annotations</code></td> <td>dict</td> <td>{}</td> <td>Annotations to add to the service account</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.serviceAccount.name</code></td> <td>string</td> <td> </td> <td>The name of the service account to use. If not set and create is true, a name is generated using the fullname template</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.rbac.create</code></td> <td>bool</td> <td>true</td> <td>Specifies whether to create <a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/">RBAC</a> configuration for nfd-master</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.service.type</code></td> <td>string</td> <td>ClusterIP</td> <td>NFD master service type. <strong>NOTE</strong>: this parameter is related to the deprecated gRPC API and will be removed with it in a future release</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.service.port</code></td> <td>integer</td> <td>8080</td> <td>NFD master service port. <strong>NOTE</strong>: this parameter is related to the deprecated gRPC API and will be removed with it in a future release</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.resources.limits</code></td> <td>dict</td> <td>{memory: 4Gi}</td> <td>NFD master pod <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits">resources limits</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.resources.requests</code></td> <td>dict</td> <td>{cpu: 100m, memory: 128Mi}</td> <td>NFD master pod <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits">resources requests</a>. You may want to use the same value for <code class="language-plaintext highlighter-rouge notranslate">requests.memory</code> and <code class="language-plaintext highlighter-rouge notranslate">limits.memory</code>. The "requests" value affects scheduling to accommodate pods on nodes. If there is a large difference between "requests" and "limits" and nodes experience memory pressure, the kernel may invoke the OOM Killer, even if the memory does not exceed the "limits" threshold. This can cause unexpected pod evictions. Memory cannot be compressed and once allocated to a pod, it can only be reclaimed by killing the pod. <a href="https://home.robusta.dev/blog/kubernetes-memory-limit">Natan Yellin 22/09/2022</a> that discusses this issue.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.tolerations</code></td> <td>dict</td> <td><em>Schedule to control-plane node</em></td> <td>NFD master pod <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/">tolerations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.annotations</code></td> <td>dict</td> <td>{}</td> <td>NFD master pod <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">annotations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.affinity</code></td> <td>dict</td> <td> </td> <td>NFD master pod required <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/">node affinity</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.deploymentAnnotations</code></td> <td>dict</td> <td>{}</td> <td>NFD master deployment <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">annotations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.nfdApiParallelism</code></td> <td>integer</td> <td>10</td> <td>Specifies the maximum number of concurrent node updates.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.config</code></td> <td>dict</td> <td> </td> <td>NFD master <a href="../reference/master-configuration-reference">configuration</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.args</code></td> <td>array</td> <td>[]</td> <td>Additional <a href="/node-feature-discovery/master/reference/master-commandline-reference.html">command line arguments</a> to pass to nfd-master</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.revisionHistoryLimit</code></td> <td>integer</td> <td> </td> <td>Specify how many old ReplicaSets for this Deployment you want to retain. <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#revision-history-limit">revisionHistoryLimit</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.livenessProbe</code></td> <td>dict</td> <td>{"grpc":{"port":8082},"initialDelaySeconds":10}</td> <td>NFD master pod <a href="https://kubernetes.io/docs/concepts/configuration/liveness-readiness-startup-probes/#liveness-probe">liveness probe</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">master.readinessProbe</code></td> <td>dict</td> <td>{"grpc":{"port":8082},"initialDelaySeconds":5,"failureThreshold": 10}</td> <td>NFD master pod <a href="https://kubernetes.io/docs/concepts/configuration/liveness-readiness-startup-probes/#readiness-probe">readiness probe</a></td> </tr> </tbody> </table> <h3 id="worker-pod-parameters">Worker pod parameters</h3> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Default</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.*</code></td> <td>dict</td> <td> </td> <td>NFD worker daemonset configuration</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.enable</code></td> <td>bool</td> <td>true</td> <td>Specifies whether nfd-worker should be deployed</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.metricsPort*</code></td> <td>int</td> <td>8081</td> <td>Port on which to expose metrics from components to prometheus operator</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.config</code></td> <td>dict</td> <td> </td> <td>NFD worker <a href="../reference/worker-configuration-reference">configuration</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.podSecurityContext</code></td> <td>dict</td> <td>{}</td> <td><a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod">PodSecurityContext</a> holds pod-level security attributes and common container settins</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.securityContext</code></td> <td>dict</td> <td>{}</td> <td>Container <a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container">security settings</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.serviceAccount.create</code></td> <td>bool</td> <td>true</td> <td>Specifies whether a service account for nfd-worker should be created</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.serviceAccount.annotations</code></td> <td>dict</td> <td>{}</td> <td>Annotations to add to the service account for nfd-worker</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.serviceAccount.name</code></td> <td>string</td> <td> </td> <td>The name of the service account to use for nfd-worker. If not set and create is true, a name is generated using the fullname template (suffixed with <code class="language-plaintext highlighter-rouge notranslate">-worker</code>)</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.rbac.create</code></td> <td>bool</td> <td>true</td> <td>Specifies whether to create <a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/">RBAC</a> configuration for nfd-worker</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.mountUsrSrc</code></td> <td>bool</td> <td>false</td> <td>Specifies whether to allow users to mount the hostpath /user/src. Does not work on systems without /usr/src AND a read-only /usr</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.resources.limits</code></td> <td>dict</td> <td>{memory: 512Mi}</td> <td>NFD worker pod <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits">resources limits</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.resources.requests</code></td> <td>dict</td> <td>{cpu: 5m, memory: 64Mi}</td> <td>NFD worker pod <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits">resources requests</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.nodeSelector</code></td> <td>dict</td> <td>{}</td> <td>NFD worker pod <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector">node selector</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.tolerations</code></td> <td>dict</td> <td>{}</td> <td>NFD worker pod <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/">node tolerations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.priorityClassName</code></td> <td>string</td> <td> </td> <td>NFD worker pod <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/">priority class</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.annotations</code></td> <td>dict</td> <td>{}</td> <td>NFD worker pod <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">annotations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.daemonsetAnnotations</code></td> <td>dict</td> <td>{}</td> <td>NFD worker daemonset <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">annotations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.args</code></td> <td>array</td> <td>[]</td> <td>Additional <a href="/node-feature-discovery/master/reference/worker-commandline-reference.html">command line arguments</a> to pass to nfd-worker</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.revisionHistoryLimit</code></td> <td>integer</td> <td> </td> <td>Specify how many old ControllerRevisions for this DaemonSet you want to retain. <a href="https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/daemon-set-v1/ #DaemonSetSpec">revisionHistoryLimit</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.livenessProbe</code></td> <td>dict</td> <td>{"grpc":{"port":8082},"initialDelaySeconds":10}</td> <td>NFD worker pod <a href="https://kubernetes.io/docs/concepts/configuration/liveness-readiness-startup-probes/#liveness-probe">liveness probe</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">worker.readinessProbe</code></td> <td>dict</td> <td>{"grpc":{"port":8082},"initialDelaySeconds":5,"failureThreshold": 10}</td> <td>NFD worker pod <a href="https://kubernetes.io/docs/concepts/configuration/liveness-readiness-startup-probes/#readiness-probe">readiness probe</a></td> </tr> </tbody> </table> <h3 id="topology-updater-parameters">Topology updater parameters</h3> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Default</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.*</code></td> <td>dict</td> <td> </td> <td>NFD Topology Updater configuration</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.enable</code></td> <td>bool</td> <td>false</td> <td>Specifies whether the NFD Topology Updater should be created</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.createCRDs</code></td> <td>bool</td> <td>false</td> <td>Specifies whether the NFD Topology Updater CRDs should be created</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.serviceAccount.create</code></td> <td>bool</td> <td>true</td> <td>Specifies whether the service account for topology updater should be created</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.serviceAccount.annotations</code></td> <td>dict</td> <td>{}</td> <td>Annotations to add to the service account for topology updater</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.serviceAccount.name</code></td> <td>string</td> <td> </td> <td>The name of the service account for topology updater to use. If not set and create is true, a name is generated using the fullname template and <code class="language-plaintext highlighter-rouge notranslate">-topology-updater</code> suffix</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.rbac.create</code></td> <td>bool</td> <td>true</td> <td>Specifies whether to create <a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/">RBAC</a> configuration for topology updater</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.metricsPort</code></td> <td>integer</td> <td>8081</td> <td>Port on which to expose prometheus metrics</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.kubeletConfigPath</code></td> <td>string</td> <td>""</td> <td>Specifies the kubelet config host path</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.kubeletPodResourcesSockPath</code></td> <td>string</td> <td>""</td> <td>Specifies the kubelet sock path to read pod resources</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.updateInterval</code></td> <td>string</td> <td>60s</td> <td>Time to sleep between CR updates. Non-positive value implies no CR update.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.watchNamespace</code></td> <td>string</td> <td><code class="language-plaintext highlighter-rouge notranslate">*</code></td> <td>Namespace to watch pods, <code class="language-plaintext highlighter-rouge notranslate">*</code> for all namespaces</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.podSecurityContext</code></td> <td>dict</td> <td>{}</td> <td><a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod">PodSecurityContext</a> holds pod-level security attributes and common container sett</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.securityContext</code></td> <td>dict</td> <td>{}</td> <td>Container <a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container">security settings</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.resources.limits</code></td> <td>dict</td> <td>{memory: 60Mi}</td> <td>NFD Topology Updater pod <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits">resources limits</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.resources.requests</code></td> <td>dict</td> <td>{cpu: 50m, memory: 40Mi}</td> <td>NFD Topology Updater pod <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits">resources requests</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.nodeSelector</code></td> <td>dict</td> <td>{}</td> <td>Topology updater pod <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector">node selector</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.tolerations</code></td> <td>dict</td> <td>{}</td> <td>Topology updater pod <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/">node tolerations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.annotations</code></td> <td>dict</td> <td>{}</td> <td>Topology updater pod <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">annotations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.daemonsetAnnotations</code></td> <td>dict</td> <td>{}</td> <td>Topology updater daemonset <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">annotations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.affinity</code></td> <td>dict</td> <td>{}</td> <td>Topology updater pod <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/">affinity</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.config</code></td> <td>dict</td> <td> </td> <td><a href="../reference/topology-updater-configuration-reference">configuration</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.podSetFingerprint</code></td> <td>bool</td> <td>true</td> <td>Enables compute and report of pod fingerprint in NRT objects.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.kubeletStateDir</code></td> <td>string</td> <td>/var/lib/kubelet</td> <td>Specifies kubelet state directory path for watching state and checkpoint files. Empty value disables kubelet state tracking.</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.args</code></td> <td>array</td> <td>[]</td> <td>Additional <a href="/node-feature-discovery/master/reference/topology-updater-commandline-reference.html">command line arguments</a> to pass to nfd-topology-updater</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.revisionHistoryLimit</code></td> <td>integer</td> <td> </td> <td>Specify how many old ControllerRevisions for this DaemonSet you want to retain. <a href="https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/daemon-set-v1/#DaemonSetSpec">revisionHistoryLimit</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.livenessProbe</code></td> <td>dict</td> <td>{"grpc":{"port":8082},"initialDelaySeconds":10}</td> <td>Topology updater pod <a href="https://kubernetes.io/docs/concepts/configuration/liveness-readiness-startup-probes/#liveness-probe">liveness probe</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">topologyUpdater.readinessProbe</code></td> <td>dict</td> <td>{"grpc":{"port":8082},"initialDelaySeconds":5,"failureThreshold": 10}</td> <td>Topology updater pod <a href="https://kubernetes.io/docs/concepts/configuration/liveness-readiness-startup-probes/#readiness-probe">readiness probe</a></td> </tr> </tbody> </table> <h3 id="garbage-collector-parameters">Garbage collector parameters</h3> <table> <thead> <tr> <th>Name</th> <th>Type</th> <th>Default</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.*</code></td> <td>dict</td> <td> </td> <td>NFD Garbage Collector configuration</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.enable</code></td> <td>bool</td> <td>true</td> <td>Specifies whether the NFD Garbage Collector should be created</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.serviceAccount.create</code></td> <td>bool</td> <td>true</td> <td>Specifies whether the service account for garbage collector should be created</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.serviceAccount.annotations</code></td> <td>dict</td> <td>{}</td> <td>Annotations to add to the service account for garbage collector</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.serviceAccount.name</code></td> <td>string</td> <td> </td> <td>The name of the service account for garbage collector to use. If not set and create is true, a name is generated using the fullname template and <code class="language-plaintext highlighter-rouge notranslate">-gc</code> suffix</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.rbac.create</code></td> <td>bool</td> <td>true</td> <td>Specifies whether to create <a href="https://kubernetes.io/docs/reference/access-authn-authz/rbac/">RBAC</a> configuration for garbage collector</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.interval</code></td> <td>string</td> <td>1h</td> <td>Time between periodic garbage collector runs</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.podSecurityContext</code></td> <td>dict</td> <td>{}</td> <td><a href="https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod">PodSecurityContext</a> holds pod-level security attributes and common container settings</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.resources.limits</code></td> <td>dict</td> <td>{memory: 1Gi}</td> <td>NFD Garbage Collector pod <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits">resources limits</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.resources.requests</code></td> <td>dict</td> <td>{cpu: 10m, memory: 128Mi}</td> <td>NFD Garbage Collector pod <a href="https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits">resources requests</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.metricsPort</code></td> <td>integer</td> <td>8081</td> <td>Port on which to serve Prometheus metrics</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.nodeSelector</code></td> <td>dict</td> <td>{}</td> <td>Garbage collector pod <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector">node selector</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.tolerations</code></td> <td>dict</td> <td>{}</td> <td>Garbage collector pod <a href="https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/">node tolerations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.annotations</code></td> <td>dict</td> <td>{}</td> <td>Garbage collector pod <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">annotations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.deploymentAnnotations</code></td> <td>dict</td> <td>{}</td> <td>Garbage collector deployment <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/">annotations</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.affinity</code></td> <td>dict</td> <td>{}</td> <td>Garbage collector pod <a href="https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/">affinity</a></td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.args</code></td> <td>array</td> <td>[]</td> <td>Additional <a href="/node-feature-discovery/master/reference/gc-commandline-reference.html">command line arguments</a> to pass to nfd-gc</td> </tr> <tr> <td><code class="language-plaintext highlighter-rouge notranslate">gc.revisionHistoryLimit</code></td> <td>integer</td> <td> </td> <td>Specify how many old ReplicaSets for this Deployment you want to retain. <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#revision-history-limit">revisionHistoryLimit</a></td> </tr> </tbody> </table> <!-- Links --> </div> </div> <div class="navigation-bottom d-flex flex-justify-between py-3" role="navigation" aria-label="footer navigation"> <div class="prev"><a href="/node-feature-discovery/master/deployment/kustomize.html" class="btn" title="Kustomize" accesskey="p" rel="prev"> <i class="fa fa-arrow-circle-left"></i> Previous </a></div> <div class="next"><a href="/node-feature-discovery/master/deployment/operator.html" class="btn" title="NFD Operator" accesskey="n" rel="next"> Next <i class="fa fa-arrow-circle-right"></i> </a></div> </div><hr> <div class="copyright text-center text-gray" role="contentinfo"> <i class="fa fa-copyright"></i> <span class="time">2016-2024,</span> <a class="text-gray" href="https://github.com/kubernetes-sigs" rel="noreferrer" target="_blank">Kubernetes SIGs</a> Revision <a class="text-gray" href="https://github.com/kubernetes-sigs/node-feature-discovery/commit/" title="" rel="noreferrer" target="_blank"></a> <br> <div class="generator"> Built with <a href="https://pages.github.com" rel="noreferrer" target="_blank" title="github-pages v228">GitHub Pages</a> using a <a href="https://github.com/rundocs/jekyll-rtd-theme" rel="noreferrer" target="_blank" title="jekyll-rtd-theme v2.0.10">theme</a> provided by <a href="https://rundocs.io" rel="noreferrer" target="_blank">RunDocs</a>. </div> </div> </div> </div> <div class="addons-wrap d-flex flex-column overflow-y-auto"> <div class="status d-flex flex-justify-between p-2"> <div class="title p-1"> <i class="fa fa-book"></i> Node Feature Discovery </div> <div class="branch p-1"> <span class="name"> master </span> <i class="fa fa-caret-down"></i> </div> </div> <div class="addons d-flex flex-column height-full p-2 d-none"> <dl id="versions"> <dt>Versions</dt> <script src="/node-feature-discovery/versions.js"></script> <script> var dt = document.getElementById('versions'); var items = getVersionListItems(); for (var i=0; i < items.length; i++) { var dd = document.createElement('dd'); var a = dd.appendChild(document.createElement('a')); a.appendChild(document.createTextNode(items[i].name)); a.href = items[i].url; dt.appendChild(dd); } </script> </dl> <dl> <dt>GitHub</dt> <dd> <a href="https://github.com/kubernetes-sigs/node-feature-discovery" title="Stars: 743"> <i class="fa fa-github"></i> Homepage </a> </dd> <dd> <a href="https://github.com/kubernetes-sigs/node-feature-discovery/issues" title="Open issues: 33"> <i class="fa fa-question-circle-o"></i> Issues </a> </dd> <dd> <a href="https://github.com/kubernetes-sigs/node-feature-discovery/zipball/gh-pages" title="Size: 105750 Kb"> <i class="fa fa-download"></i> Download </a> </dd> </dl> <hr> <div class="license f6 pb-2"> This <a href="/node-feature-discovery/master/" title="Node Feature Discovery">Software</a> is under the terms of <a href="https://github.com/kubernetes-sigs/node-feature-discovery">Apache License 2.0</a>. </div> </div> </div> <script src="https://cdn.jsdelivr.net/gh/rundocs/jekyll-rtd-theme@2.0.10/assets/js/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/gh/rundocs/jekyll-rtd-theme@2.0.10/assets/js/theme.min.js"></script> </body> </html> |