1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2025-03-15 04:57:56 +00:00
Node feature discovery for Kubernetes
Find a file
Markus Lehtonen 6cbed379df source/custom: implement matchAny directive
Implement a new 'matchAny' directive in the new rule format, building on
top of the previously implemented 'matchFeatures' matcher. MatchAny
applies a logical OR over multiple matchFeatures directives. That is, it
allows specifying multiple alternative matchers (at least one of which
must match) in a single label rule.

The configuration format for the new matchers is

  matchAny:
    - matchFeatures:
        - feature: <domain>.<feature>
          matchExpressions:
            <attribute>:
              op: <operator>
              value:
                - <list-of-values>
    - matchFeatures:
      ...

A configuration example. In order to require a cpu feature, kernel
module and one of two specific PCI devices (taking use of the shortform
notation):

  - name: multi-device-test
    labels:
      multi-device-feature: "true"
    matchFeatures:
      - feature: kernel.loadedmodule
        matchExpressions: [driver-module]
      - feature: cpu.cpuid
        matchExpressions: [AVX512F]
    matchAny:
      - matchFeatures:
          - feature; pci.device
            matchExpressions:
              vendor: "8086"
              device: "1234"
      - matchFeatures:
          - feature: pci.device
            matchExpressions:
              vendor: "8086"
              device: "abcd"
2021-11-12 16:51:30 +02:00
.github Merge pull request #498 from marquiz/devel/github-release-template 2021-04-06 17:24:40 -07:00
cmd topology-updater:fix klog initialization 2021-10-11 21:36:54 +03:00
demo demo: make demo runnable again 2020-09-10 17:09:53 +03:00
deployment source/custom: implement matchAny directive 2021-11-12 16:51:30 +02:00
docs More topology updater documentation typo fixes 2021-11-12 14:25:32 +02:00
pkg pkg/api/feature: revert back to structs instead of pointers 2021-11-11 17:56:55 +02:00
scripts scripts/test-infra: bump golangci-lint to v1.42.1 2021-10-04 09:43:21 +03:00
source source/custom: implement matchAny directive 2021-11-12 16:51:30 +02:00
test Merge pull request #644 from marquiz/devel/e2e-boot-mount 2021-11-10 11:13:27 -08: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 cloudbuild.yaml: use staging container image repo 2020-09-04 08:46:03 +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 Bump to golang v1.17 2021-10-21 14:16:55 +03:00
go.mod Bump to golang v1.17 2021-10-21 14:16:55 +03:00
go.sum topologyupdater: Updates based on latest changes made to CRD API 2021-09-21 10:48:10 +01:00
LICENSE Template project files 2016-07-22 22:13:48 -07:00
Makefile Makefile: let gofmt-verify write changes back to files 2021-10-22 12:03:24 +03:00
OWNERS Update OWNERS file 2021-02-15 12:10:51 +00:00
README.md README: update deployment instructions to use v0.9.0 2021-08-20 09:05:40 +03:00
SECURITY_CONTACTS Update SECURITY_CONTACTS 2020-11-19 15:10:27 -05:00

Node Feature Discovery

Go Report Card Prow Build

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