2025-01-08 13:59:43 +00:00
<!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 = "Image Compatibility Artifact Table of contents Image Compatibility Compatibility Specification Schema OCI Artifact Validate the host against the im..." > < 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 > Image Compatibility Artifact · Node Feature Discovery< / title > < meta name = "twitter:title" content = "Image Compatibility Artifact · Node Feature Discovery" > < meta name = "twitter:description" content = "Image Compatibility Artifact Table of contents Image Compatibility Compatibility Specification Schema OCI Artifact Validate the host against the im..." > < 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/usage/image-compatibility.html" > < meta name = "twitter:creator" content = "@jekyll-rtd-theme v2.0.10" > < meta property = "og:title" content = "Image Compatibility Artifact · Node Feature Discovery" > < meta property = "og:description" content = "Image Compatibility Artifact Table of contents Image Compatibility Compatibility Specification Schema OCI Artifact Validate the host against the im..." > < meta property = "og:locale" content = "en" > < meta property = "og:url" content = "https://kubernetes-sigs.github.com/node-feature-discovery/master/usage/image-compatibility.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 = "2025-01-08T13:59:34+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/usage/image-compatibility.html" } , "headline" : "Image Compatibility Artifact · Node Feature Discovery" , "image" : [ ] , "author" : { "@type" : "Person" , "name" : "Kubernetes SIGs" } , "datePublished" : "2016-07-23T05:07:52+00:00" , "dateModified" : "2025-01-08T13:59:34+00:00" , "publisher" : { "@type" : "Organization" , "name" : "Kubernetes SIGs" , "logo" : { "@type" : "ImageObject" , "url" : "https://avatars.githubusercontent.com/u/36015203?v=4" } } , "description" : "Image Compatibility Artifact Table of contents Image Compatibility Compatibility Specification Schema OCI Artifact Validate the host against the im..." } < / script > < link rel = "dns-prefetch" href = "https://cdn.jsdelivr.net" > < link rel = "prev" href = "https://kubernetes-sigs.github.com/node-feature-discovery/master/usage/kubectl-plugin.html" > < link rel = "canonical" href = "https://kubernetes-sigs.github.com/node-feature-discovery/master/usage/image-compatibility.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 : 1200 px } } < / style > < script > w i n d o w . u i = { t i t l e : " N o d e F e a t u r e D i s c o v e r y " , b a s e u r l : " / n o d e - f e a t u r e - d i s c o v e r y / m a s t e r " , i 1 8 n : { s e a r c h _ r e s u l t s : " S e a r c h R e s u l t s " , s e a r c h _ r e s u l t s _ f o u n d : " S e a r c h f i n i s h e d , f o u n d # p a g e ( s ) m a
2024-12-19 16:15:12 +00:00
< span class = "na" > compatibilities< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > description< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > My< / span > < span class = "nv" > < / span > < span class = "s" > image< / span > < span class = "nv" > < / span > < span class = "s" > requirements"< / span >
< span class = "na" > rules< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > kernel< / span > < span class = "nv" > < / span > < span class = "s" > and< / span > < span class = "nv" > < / span > < span class = "s" > cpu"< / span >
< span class = "na" > matchFeatures< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > feature< / span > < span class = "pi" > :< / span > < span class = "s" > kernel.loadedmodule< / span >
< span class = "na" > matchExpressions< / span > < span class = "pi" > :< / span >
< span class = "na" > vfio-pci< / span > < span class = "pi" > :< / span > < span class = "pi" > {< / span > < span class = "nv" > op< / span > < span class = "pi" > :< / span > < span class = "nv" > Exists< / span > < span class = "pi" > }< / span >
< span class = "pi" > -< / span > < span class = "na" > feature< / span > < span class = "pi" > :< / span > < span class = "s" > cpu.model< / span >
< span class = "na" > matchExpressions< / span > < span class = "pi" > :< / span >
< span class = "na" > vendor_id< / span > < span class = "pi" > :< / span > < span class = "pi" > {< / span > < span class = "nv" > op< / span > < span class = "pi" > :< / span > < span class = "nv" > In< / span > < span class = "pi" > ,< / span > < span class = "nv" > value< / span > < span class = "pi" > :< / span > < span class = "pi" > [< / span > < span class = "s2" > "< / span > < span class = "s" > Intel"< / span > < span class = "pi" > ,< / span > < span class = "s2" > "< / span > < span class = "s" > AMD"< / span > < span class = "pi" > ]}< / span >
< span class = "pi" > -< / span > < span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > one< / span > < span class = "nv" > < / span > < span class = "s" > of< / span > < span class = "nv" > < / span > < span class = "s" > available< / span > < span class = "nv" > < / span > < span class = "s" > nics"< / span >
< span class = "na" > matchAny< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > matchFeatures< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > feature< / span > < span class = "pi" > :< / span > < span class = "s" > pci.device< / span >
< span class = "na" > matchExpressions< / span > < span class = "pi" > :< / span >
< span class = "na" > vendor< / span > < span class = "pi" > :< / span > < span class = "pi" > {< / span > < span class = "nv" > op< / span > < span class = "pi" > :< / span > < span class = "nv" > In< / span > < span class = "pi" > ,< / span > < span class = "nv" > value< / span > < span class = "pi" > :< / span > < span class = "pi" > [< / span > < span class = "s2" > "< / span > < span class = "s" > 0eee"< / span > < span class = "pi" > ]}< / span >
< span class = "na" > class< / span > < span class = "pi" > :< / span > < span class = "pi" > {< / span > < span class = "nv" > op< / span > < span class = "pi" > :< / span > < span class = "nv" > In< / span > < span class = "pi" > ,< / span > < span class = "nv" > value< / span > < span class = "pi" > :< / span > < span class = "pi" > [< / span > < span class = "s2" > "< / span > < span class = "s" > 0200"< / span > < span class = "pi" > ]}< / span >
< span class = "pi" > -< / span > < span class = "na" > matchFeatures< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > feature< / span > < span class = "pi" > :< / span > < span class = "s" > pci.device< / span >
< span class = "na" > matchExpressions< / span > < span class = "pi" > :< / span >
< span class = "na" > vendor< / span > < span class = "pi" > :< / span > < span class = "pi" > {< / span > < span class = "nv" > op< / span > < span class = "pi" > :< / span > < span class = "nv" > In< / span > < span class = "pi" > ,< / span > < span class = "nv" > value< / span > < span class = "pi" > :< / span > < span class = "pi" > [< / span > < span class = "s2" > "< / span > < span class = "s" > 0fff"< / span > < span class = "pi" > ]}< / span >
< span class = "na" > class< / span > < span class = "pi" > :< / span > < span class = "pi" > {< / span > < span class = "nv" > op< / span > < span class = "pi" > :< / span > < span class = "nv" > In< / span > < span class = "pi" > ,< / span > < span class = "nv" > value< / span > < span class = "pi" > :< / span > < span class = "pi" > [< / span > < span class = "s2" > "< / span > < span class = "s" > 0200"< / span > < span class = "pi" > ]}< / span >
< / code > < / pre > < / div > < / div > < h3 id = "oci-artifact" > OCI Artifact< / h3 > < p > An < a href = "https://github.com/opencontainers/image-spec/blob/main/manifest.md#guidelines-for-artifact-usage" > OCI artifact< / a > is used to store image compatibility metadata. The artifact can be associated with a specific image through < a href = "https://github.com/opencontainers/distribution-spec/blob/11b8e3fba7d2d7329513d0cff53058243c334858/spec.md#pushing-manifests-with-subject" > the subject field< / a > and pushed to the registry along with the image.< / p > < p > Example manifest:< / p > < div class = "language-json highlighter-rouge notranslate" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "nl" > "schemaVersion"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "mediaType"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "application/vnd.oci.image.manifest.v1+json"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "artifactType"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "application/vnd.nfd.image-compatibility.v1alpha1"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "config"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "nl" > "mediaType"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "application/vnd.oci.empty.v1+json"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "digest"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "sha256:44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "size"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 2< / span > < span class = "w" >
< / span > < span class = "p" > },< / span > < span class = "w" >
< / span > < span class = "nl" > "layers"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > [< / span > < span class = "w" >
< / span > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "nl" > "mediaType"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "application/vnd.nfd.image-compatibility.spec.v1alpha1+yaml"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "digest"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "sha256:4a47f8ae4c713906618413cb9795824d09eeadf948729e213a1ba11a1e31d052"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "size"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 1710< / span > < span class = "w" >
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < span class = "p" > ],< / span > < span class = "w" >
< / span > < span class = "nl" > "subject"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "nl" > "mediaType"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "application/vnd.oci.image.manifest.v1+json"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "digest"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "sha256:5b0bcabd1ed22e9fb1310cf6c2dec7cdef19f0ad69efa1f392e94a4333501270"< / span > < span class = "p" > ,< / span > < span class = "w" >
< / span > < span class = "nl" > "size"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "mi" > 7682< / span > < span class = "w" >
< / span > < span class = "p" > },< / span > < span class = "w" >
< / span > < span class = "nl" > "annotations"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "p" > {< / span > < span class = "w" >
< / span > < span class = "nl" > "oci.opencontainers.image.created"< / span > < span class = "p" > :< / span > < span class = "w" > < / span > < span class = "s2" > "2024-03-27T08:08:08Z"< / span > < span class = "w" >
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < span class = "p" > }< / span > < span class = "w" >
< / span > < / code > < / pre > < / div > < / div > < h4 id = "attach-the-artifact-to-the-image" > Attach the artifact to the image< / h4 > < p > Create an image compatibility specification for the image, then install the < a href = "https://github.com/oras-project/oras/" > ORAS< / a > tool and execute < code class = "language-plaintext highlighter-rouge notranslate" > oras attach< / code > command.< / p > < p > Example:< / p > < div class = "language-sh highlighter-rouge notranslate" > < div class = "highlight" > < pre class = "highlight" > < code > oras attach < span class = "nt" > --artifact-type< / span > application/vnd.nfd.image-compatibility.v1alpha1 < span class = "se" > \< / span >
< image-url> < path-to-spec> .yaml:application/vnd.nfd.image-compatibility.spec.v1alpha1+yaml
< / code > < / pre > < / div > < / div > < p > < strong > Note< / strong > : The attach command is planned to be integrated into the < code class = "language-plaintext highlighter-rouge notranslate" > nfd< / code > client tool. This will streamline the process, allowing you to perform the operation directly within the tool rather than using a separate command.< / p > < h3 id = "validate-the-host-against-the-image-compatibility-specification" > Validate the host against the image compatibility specification< / h3 > < ol > < li > Build < code class = "language-plaintext highlighter-rouge notranslate" > nfd< / code > client: < code class = "language-plaintext highlighter-rouge notranslate" > make build< / code > < / li > < li > Run < code class = "language-plaintext highlighter-rouge notranslate" > ./bin/nfd compat validate-node --image < image-url> < / code > < / li > < / ol > < p > For more information about the available commands and flags, refer to < a href = "/node-feature-discovery/master/reference/node-feature-client-reference.html" > the client documentation< / a > .< / p > < h3 id = "validate-the-k8s-cluster-node-with-the-validate-image-job" > Validate the k8s cluster node with the validate-image Job< / h3 > < p > < strong > Note< / strong > : This does not require installation of NFD master and workers. Additionally, public registry certificates must be included in the job. In the example below, this is done using hostPath, but it can be done using any Kubernetes-supported method.< / p > < div class = "language-yaml highlighter-rouge notranslate" > < div class = "highlight" > < pre class = "highlight" > < code > < span class = "na" > apiVersion< / span > < span class = "pi" > :< / span > < span class = "s" > batch/v1< / span >
< span class = "na" > kind< / span > < span class = "pi" > :< / span > < span class = "s" > Job< / span >
< span class = "na" > metadata< / span > < span class = "pi" > :< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > validate-image< / span >
< span class = "na" > spec< / span > < span class = "pi" > :< / span >
< span class = "na" > backoffLimit< / span > < span class = "pi" > :< / span > < span class = "m" > 1< / span >
< span class = "na" > template< / span > < span class = "pi" > :< / span >
< span class = "na" > spec< / span > < span class = "pi" > :< / span >
< span class = "na" > restartPolicy< / span > < span class = "pi" > :< / span > < span class = "s" > Never< / span >
< span class = "na" > containers< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > image-compatibility< / span >
< span class = "na" > securityContext< / span > < span class = "pi" > :< / span >
< span class = "na" > allowPrivilegeEscalation< / span > < span class = "pi" > :< / span > < span class = "no" > false< / span >
< span class = "na" > capabilities< / span > < span class = "pi" > :< / span >
< span class = "na" > drop< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "s" > ALL< / span >
< span class = "na" > readOnlyRootFilesystem< / span > < span class = "pi" > :< / span > < span class = "no" > true< / span >
< span class = "na" > runAsNonRoot< / span > < span class = "pi" > :< / span > < span class = "no" > true< / span >
< span class = "na" > image< / span > < span class = "pi" > :< / span > < span class = "s" > < image-with-nfd-client> < / span >
< span class = "na" > command< / span > < span class = "pi" > :< / span > < span class = "pi" > [< / span > < span class = "s2" > "< / span > < span class = "s" > nfd"< / span > < span class = "pi" > ,< / span > < span class = "s2" > "< / span > < span class = "s" > compat"< / span > < span class = "pi" > ,< / span > < span class = "s2" > "< / span > < span class = "s" > validate-node"< / span > < span class = "pi" > ,< / span > < span class = "s2" > "< / span > < span class = "s" > --image"< / span > < span class = "pi" > ,< / span > < span class = "s2" > "< / span > < span class = "s" > < image-to-be-validated> "< / span > < span class = "pi" > ]< / span >
< span class = "na" > volumeMounts< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > mountPath< / span > < span class = "pi" > :< / span > < span class = "s" > /host-boot< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-boot< / span >
< span class = "na" > readOnly< / span > < span class = "pi" > :< / span > < span class = "no" > true< / span >
< span class = "pi" > -< / span > < span class = "na" > mountPath< / span > < span class = "pi" > :< / span > < span class = "s" > /host-etc/os-release< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-os-release< / span >
< span class = "na" > readOnly< / span > < span class = "pi" > :< / span > < span class = "no" > true< / span >
< span class = "pi" > -< / span > < span class = "na" > mountPath< / span > < span class = "pi" > :< / span > < span class = "s" > /host-sys< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-sys< / span >
< span class = "na" > readOnly< / span > < span class = "pi" > :< / span > < span class = "no" > true< / span >
< span class = "pi" > -< / span > < span class = "na" > mountPath< / span > < span class = "pi" > :< / span > < span class = "s" > /host-usr/lib< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-usr-lib< / span >
< span class = "na" > readOnly< / span > < span class = "pi" > :< / span > < span class = "no" > true< / span >
< span class = "pi" > -< / span > < span class = "na" > mountPath< / span > < span class = "pi" > :< / span > < span class = "s" > /host-lib< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-lib< / span >
< span class = "na" > readOnly< / span > < span class = "pi" > :< / span > < span class = "no" > true< / span >
< span class = "pi" > -< / span > < span class = "na" > mountPath< / span > < span class = "pi" > :< / span > < span class = "s" > /host-proc< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-proc< / span >
< span class = "na" > readOnly< / span > < span class = "pi" > :< / span > < span class = "no" > true< / span >
< span class = "na" > volumes< / span > < span class = "pi" > :< / span >
< span class = "pi" > -< / span > < span class = "na" > hostPath< / span > < span class = "pi" > :< / span >
< span class = "na" > path< / span > < span class = "pi" > :< / span > < span class = "s" > /boot< / span >
< span class = "na" > type< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > "< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-boot< / span >
< span class = "pi" > -< / span > < span class = "na" > hostPath< / span > < span class = "pi" > :< / span >
< span class = "na" > path< / span > < span class = "pi" > :< / span > < span class = "s" > /etc/os-release< / span >
< span class = "na" > type< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > "< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-os-release< / span >
< span class = "pi" > -< / span > < span class = "na" > hostPath< / span > < span class = "pi" > :< / span >
< span class = "na" > path< / span > < span class = "pi" > :< / span > < span class = "s" > /sys< / span >
< span class = "na" > type< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > "< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-sys< / span >
< span class = "pi" > -< / span > < span class = "na" > hostPath< / span > < span class = "pi" > :< / span >
< span class = "na" > path< / span > < span class = "pi" > :< / span > < span class = "s" > /usr/lib< / span >
< span class = "na" > type< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > "< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-usr-lib< / span >
< span class = "pi" > -< / span > < span class = "na" > hostPath< / span > < span class = "pi" > :< / span >
< span class = "na" > path< / span > < span class = "pi" > :< / span > < span class = "s" > /lib< / span >
< span class = "na" > type< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > "< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-lib< / span >
< span class = "pi" > -< / span > < span class = "na" > hostPath< / span > < span class = "pi" > :< / span >
< span class = "na" > path< / span > < span class = "pi" > :< / span > < span class = "s" > /proc< / span >
< span class = "na" > type< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > "< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > host-proc< / span >
< span class = "pi" > -< / span > < span class = "na" > hostPath< / span > < span class = "pi" > :< / span >
< span class = "na" > path< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > < path-to-registry-public-certs> "< / span >
< span class = "na" > type< / span > < span class = "pi" > :< / span > < span class = "s2" > "< / span > < span class = "s" > "< / span >
< span class = "na" > name< / span > < span class = "pi" > :< / span > < span class = "s" > certs< / span >
2025-01-08 13:59:43 +00:00
< / code > < / pre > < / div > < / div > < / 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/usage/kubectl-plugin.html" class = "btn" title = "Kubectl plugin" accesskey = "p" rel = "prev" > < i class = "fa fa-arrow-circle-left" > < / i > Previous < / a > < / div > < div class = "next" > < / div > < / div > < hr > < div class = "copyright text-center text-gray" role = "contentinfo" > < i class = "fa fa-copyright" > < / i > < span class = "time" > 2016-2025,< / 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: 818" > < i class = "fa fa-github" > < / i > Homepage < / a > < / dd > < dd > < a href = "https://github.com/kubernetes-sigs/node-feature-discovery/issues" title = "Open issues: 48" > < 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: 108292 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 >