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 c3e2315834 pkg/apis/nfd: specify CRD for custom labeling rules
Add a cluster-scoped Custom Resource Definition for specifying labeling
rules. Nodes (node features, node objects) are cluster-level objects and
thus the natural and encouraged setup is to only have one NFD deployment
per cluster - the set of underlying features of the node stays the same
independent of how many parallel NFD deployments you have. Our extension
points (hooks, feature files and now CRs) can be be used by multiple
actors (depending on us) simultaneously. Having the CRD cluster-scoped
hopefully drives deployments in this direction. It also should make
deployment of vendor-specific labeling rules easy as there is no need to
worry about the namespace.

This patch virtually replicates the source.custom.FeatureSpec in a CRD
API (located in the pkg/apis/nfd/v1alpha1 package) with the notable
exception that "MatchOn" legacy rules are not supported. Legacy rules
are left out in order to keep the CRD simple and clean.

The duplicate functionality in source/custom will be dropped by upcoming
patches.

This patch utilizes controller-gen (from sigs.k8s.io/controller-tools)
for generating the CRD and deepcopy methods. Code can be (re-)generated
with "make generate". Install controller-gen with:

  go install sigs.k8s.io/controller-tools/cmd/controller-gen@v0.7.0

Update kustomize and helm deployments to deploy the CRD.
2021-11-17 13:40:23 +02:00
.github Merge pull request #498 from marquiz/devel/github-release-template 2021-04-06 17:24:40 -07:00
cmd NFD-Topology-Updater: Bump NRT API to version v0.0.12 2021-11-16 13:28:23 +00:00
demo demo: make demo runnable again 2020-09-10 17:09:53 +03:00
deployment pkg/apis/nfd: specify CRD for custom labeling rules 2021-11-17 13:40:23 +02:00
docs pkg/apis/nfd: specify CRD for custom labeling rules 2021-11-17 13:40:23 +02:00
hack grpc: extend the API to send raw features 2021-11-16 17:32:28 +02:00
pkg pkg/apis/nfd: specify CRD for custom labeling rules 2021-11-17 13:40:23 +02:00
scripts scripts/test-infra: bump golangci-lint to v1.42.1 2021-10-04 09:43:21 +03:00
source source/custom: move rule expressions to pkg/apis/nfd/v1alpha1 2021-11-16 18:12:16 +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 pkg/apis/nfd: specify CRD for custom labeling rules 2021-11-17 13:40:23 +02:00
go.sum NFD-Topology-Updater: Bump NRT API to version v0.0.12 2021-11-16 13:28:23 +00:00
LICENSE Template project files 2016-07-22 22:13:48 -07:00
Makefile pkg/apis/nfd: specify CRD for custom labeling rules 2021-11-17 13:40:23 +02: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",
...