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
Separate feature discovery and creation of feature labels. Generalize the feature discovery so that block devices can be matched in custom label rules in a similar fashion as pci and usb devices. This extends the discovery to other block queue attributes than 'rotational': now we also detect 'dax', 'nr_zones' and 'zoned'. Labels created by the storage feature source are unchanged. The new features being detected are available in custom rules only. Example custom rules: - name: "my block rule 1" labels: my-block-feature-1: "true" matchFeatures: - feature: storage.block "rotational": {op: In, value: ["0"]} - name: "my block rule 2" labels: my-block-feature-2: "true" matchFeatures: - feature: storage.block "zoned": {op: In, value: [“host-aware”, “host-managed”]} Also, add minimalist unit test. |
||
---|---|---|
.github | ||
cmd | ||
demo | ||
deployment | ||
docs | ||
hack | ||
pkg | ||
scripts | ||
source | ||
test | ||
.dockerignore | ||
.gitignore | ||
cloudbuild.yaml | ||
code-of-conduct.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
OWNERS | ||
README.md | ||
SECURITY_CONTACTS |
Node Feature Discovery
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.9.0
namespace/node-feature-discovery 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
{
"beta.kubernetes.io/arch": "amd64",
"beta.kubernetes.io/os": "linux",
"feature.node.kubernetes.io/cpu-cpuid.ADX": "true",
"feature.node.kubernetes.io/cpu-cpuid.AESNI": "true",
...