1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2024-12-14 11:57:51 +00:00
Node feature discovery for Kubernetes
Find a file
Markus Lehtonen 3b448ae623 apis/nfd: allow different types of features of the same name
This patch changes the handling of NodeFeatureRules so that one feature
name (say "cpu.cpuid") can hold different types of features (flags,
attributes and/or instances). Requiring features to choose one single
type has not been a limitation of the API itself (and there has been no
validation on this) but an implementation decision.

The new evalutation logic of match expressions is such that "flags" and
"attributes" are basically evaluated as an union - they are both maps
but "flags" just don't have any value associated with the key. However,
"instances" are handled separately as that is basically an array of
maps and needs to be evaluated in a different way (loop over the array
of instances and evaluate expressions against the attributes of each).
Because of this difference care must be taken if mixing "instance"
features with "flag" and/or "attribute" features.

Note that the API types or their validation is not changed - just the
implementation of how the NodeFeatureRules are evaluated.
2024-05-24 13:18:31 +03:00
.github Merge pull request #1687 from kubernetes-sigs/dependabot/github_actions/master/actions/checkout-4 2024-04-29 09:22:21 -07:00
api apis/nfd: allow different types of features of the same name 2024-05-24 13:18:31 +03:00
cmd nfd-master: implement opts for modifying NfdMaster instance 2024-04-05 20:21:19 +03:00
demo demo: make demo runnable again 2020-09-10 17:09:53 +03:00
deployment Merge pull request #1651 from cmontemuino/doc-resource-limits 2024-04-25 06:41:29 -07:00
docs apis/nfd: allow different types of features of the same name 2024-05-24 13:18:31 +03:00
enhancements/1186-spiffe-integration docs: add kep of spiffe integration 2024-01-18 15:09:10 +01:00
examples source/system: Add reading vendor information 2024-02-19 15:40:31 +02:00
hack Merge pull request #1681 from ArangoGutierrez/codegenv1.30 2024-04-26 10:40:30 -07:00
pkg apis/nfd: allow different types of features of the same name 2024-05-24 13:18:31 +03:00
scripts Disable armv7 builds 2024-04-26 12:32:30 +02:00
source api/nfd: use varargs in the NewInstanceFeatures helper 2024-04-23 10:29:24 +03:00
test test/e2e: stop importing kubernetes test/e2e 2024-04-26 09:34:34 +03:00
.dockerignore dockerignore: cleanup 2023-12-08 14:48:02 +02:00
.gitignore gitignore: ignore codecov coverage report 2023-03-13 12:08:32 +02:00
cloudbuild.yaml cloudbuild.yaml: downgrade machine type to e2-highcpu-8 2024-04-26 18:39:18 +03:00
code-of-conduct.md Update code-of-conduct.md 2017-12-20 14:12:51 -05:00
codecov.yml codecov: drop required minimum coverage ratio of at patch level 2023-04-28 17:00:14 +03:00
CONTRIBUTING.md Template project files 2016-07-22 22:13:48 -07:00
Dockerfile Move NFD api to a separate go mod 2024-04-05 16:35:47 +02:00
Dockerfile_generator Update generate scripts to use latest code_gen functions 2024-03-12 11:35:47 +01:00
go.mod Merge pull request #1688 from kubernetes-sigs/dependabot/go_modules/master/github.com/jaypipes/ghw-0.12.0 2024-04-30 01:04:30 -07:00
go.sum Merge pull request #1688 from kubernetes-sigs/dependabot/go_modules/master/github.com/jaypipes/ghw-0.12.0 2024-04-30 01:04:30 -07:00
LICENSE Template project files 2016-07-22 22:13:48 -07:00
Makefile Add armv7 support 2024-04-15 16:42:44 +02:00
netlify.toml Add netlify configuration file 2022-09-16 00:47:49 +03:00
OWNERS replace AhmedGrati account with TessaIO as reviewer 2024-03-16 21:37:05 +01:00
README.md Update readme to v0.15.4 release 2024-03-28 11:35:54 +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.15.4
  namespace/node-feature-discovery created
  customresourcedefinition.apiextensions.k8s.io/nodefeaturerules.nfd.k8s-sigs.io created
  customresourcedefinition.apiextensions.k8s.io/nodefeatures.nfd.k8s-sigs.io created
  serviceaccount/nfd-gc created
  serviceaccount/nfd-master created
  serviceaccount/nfd-worker created
  role.rbac.authorization.k8s.io/nfd-worker created
  clusterrole.rbac.authorization.k8s.io/nfd-gc created
  clusterrole.rbac.authorization.k8s.io/nfd-master created
  rolebinding.rbac.authorization.k8s.io/nfd-worker created
  clusterrolebinding.rbac.authorization.k8s.io/nfd-gc created
  clusterrolebinding.rbac.authorization.k8s.io/nfd-master created
  configmap/nfd-master-conf created
  configmap/nfd-worker-conf created
  deployment.apps/nfd-gc 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-gc-565fc85d9b-94jpj       1/1     Running   0          18s
  pod/nfd-master-6796d89d7b-qccrq   1/1     Running   0          18s
  pod/nfd-worker-nwdp6              1/1     Running   0          18s
...

$ 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",
...