1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2025-03-28 02:37:11 +00:00
Node feature discovery for Kubernetes
Find a file
Markus Lehtonen 6ddd87e465 nfd-master: support NodeFeature objects
Add initial support for handling NodeFeature objects. With this patch
nfd-master watches NodeFeature objects in all namespaces and reacts to
changes in any of these. The node which a certain NodeFeature object
affects is determined by the "nfd.node.kubernetes.io/node-name"
annotation of the object. When a NodeFeature object targeting certain
node is changed, nfd-master needs to process all other objects targeting
the same node, too, because there may be dependencies between them.

Add a new command line flag for selecting between gRPC and NodeFeature
CRD API as the source of feature requests. Enabling NodeFeature API
disables the gRPC interface.

 -enable-nodefeature-api   enable NodeFeature CRD API for incoming
                           feature requests, will disable the gRPC
                           interface (defaults to false)

It is not possible to serve gRPC and watch NodeFeature objects at the
same time. This is deliberate to avoid labeling races e.g. by nfd-worker
sending gRPC requests but NodeFeature objects in the cluster
"overriding" those changes (labels from the gRPC requests will get
overridden when NodeFeature objects are processed).
2022-12-14 07:31:28 +02:00
.github scripts: move hacky scripts to hack directory 2022-09-13 17:58:09 +03:00
cmd nfd-master: support NodeFeature objects 2022-12-14 07:31:28 +02:00
demo demo: make demo runnable again 2020-09-10 17:09:53 +03:00
deployment nfd-master: support NodeFeature objects 2022-12-14 07:31:28 +02:00
docs nfd-master: support NodeFeature objects 2022-12-14 07:31:28 +02:00
examples docs: add customization guide 2022-01-08 09:56:05 +02:00
hack apis/nfd: add CRD for communicating node features 2022-12-14 07:31:28 +02:00
pkg nfd-master: support NodeFeature objects 2022-12-14 07:31:28 +02:00
scripts scripts/mdlint: update mdlint to v0.12.0 2022-12-01 20:57:21 +02:00
source Merge pull request #927 from yselkowitz/cpuid 2022-11-08 07:08:23 -08:00
test update test functions according to upstream deprecated/removed methods 2022-12-13 12:12:50 +02:00
.dockerignore dockerignore: tidy up and update 2020-05-19 10:13:54 +03:00
.gitignore Only add kustomization.yaml in the root to .gitignore 2021-08-26 15:27:03 +01:00
cloudbuild.yaml Increase allowed image build timeout 2022-10-27 01:03:25 +03:00
code-of-conduct.md Update code-of-conduct.md 2017-12-20 14:12:51 -05:00
CONTRIBUTING.md Template project files 2016-07-22 22:13:48 -07:00
Dockerfile dockerfile: update builder image to golang v1.18 2022-07-08 10:04:04 +03:00
Dockerfile_generator generate: use common builder base image 2022-09-08 12:43:15 +03:00
go.mod Bump go.mod k8s.io to 1.26 2022-12-13 12:12:46 +02:00
go.sum Bump go.mod k8s.io to 1.26 2022-12-13 12:12:46 +02:00
LICENSE Template project files 2016-07-22 22:13:48 -07:00
Makefile helm: topology-updater: enable the configuration via helm 2022-11-21 21:31:37 +02:00
netlify.toml Add netlify configuration file 2022-09-16 00:47:49 +03:00
OWNERS OWNERS: add fmuyassarov as a reviewer 2022-10-13 16:39:59 +03:00
README.md README: update deployment instructions to use v0.11.3 2022-11-01 11:31:36 +02:00
SECURITY_CONTACTS Update SECURITY_CONTACTS 2020-11-19 15:10:27 -05:00
Tiltfile Update base image to Debian bullseye 2022-10-14 10:04:04 +03:00

Node Feature Discovery

Go Report Card Prow Build Prow E2E-Test

Welcome to Node Feature Discovery a Kubernetes add-on for detecting hardware features and system configuration!

See our Documentation for detailed instructions and reference

Quick-start the short-short version

$ kubectl apply -k https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.11.3
  namespace/node-feature-discovery created
  customresourcedefinition.apiextensions.k8s.io/nodefeaturerules.nfd.k8s-sigs.io created
  serviceaccount/nfd-master created
  clusterrole.rbac.authorization.k8s.io/nfd-master created
  clusterrolebinding.rbac.authorization.k8s.io/nfd-master created
  configmap/nfd-worker-conf created
  service/nfd-master created
  deployment.apps/nfd-master created
  daemonset.apps/nfd-worker created

$ kubectl -n node-feature-discovery get all
  NAME                              READY   STATUS    RESTARTS   AGE
  pod/nfd-master-555458dbbc-sxg6w   1/1     Running   0          56s
  pod/nfd-worker-mjg9f              1/1     Running   0          17s
...

$ kubectl get no -o json | jq .items[].metadata.labels
  {
    "kubernetes.io/arch": "amd64",
    "kubernetes.io/os": "linux",
    "feature.node.kubernetes.io/cpu-cpuid.ADX": "true",
    "feature.node.kubernetes.io/cpu-cpuid.AESNI": "true",
...