1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2024-12-14 11:57:51 +00:00
Commit graph

425 commits

Author SHA1 Message Date
Adrian Chiris
297f8134de Clarify Custom Features section in README
- Add Nomenclature
- Rewording to match the defined nomenclature
- Reorganize Custom Feature section for clarity
2020-03-22 14:46:16 +02:00
Kubernetes Prow Robot
014e4c84b8
Merge pull request #291 from uniemimu/master
master: add extended resource support
2020-03-20 05:58:37 -07:00
Markus Lehtonen
9eb98040e9 source/system: do not publish empty version labels
Do not publish non-existing version components as empty labels.
2020-03-20 10:16:01 +02:00
Markus Lehtonen
8c964b9daf version: allow undefined version
Just print a warning instead of exiting with an error if no version has
been specified at build-time. This was pointless and just annoying at
development time when doing builds with go directly.
2020-03-20 07:21:43 +02:00
Ukri Niemimuukko
903a939836 nfd-master: add extended resource support
This adds support for making selected labels extended resources.

Labels which have integer values, can be promoted to Kubernetes extended
resources by listing them to the added command line flag
`--resource-labels`. These labels won't then show in the node label
section, they will appear only as extended resources.

Signed-off-by: Ukri Niemimuukko <ukri.niemimuukko@intel.com>
2020-03-19 13:19:22 +02:00
Adrian Chiris
f5307ddf7a Documentation updates
- Update README.md with `custom` source
- Update nfd-worker configuration example
2020-03-19 11:10:13 +02:00
Adrian Chiris
192b3d7bdd Add 'custom' feature Source to nfd-worker 2020-03-19 09:32:07 +02:00
Adrian Chiris
e4e3a9f68e Implement the 'custom' feature Source
- Implement the 'custom' feature source utilizing the
  match rules implemented in previous commit.

- Add a static custom feature list for:
  1. rdma.capable - marks a node where devices that support
     RDMA are present.
  2. rdma.enabled - marks a node where rdma modules have
     been loaded.
  A user may extend these features with additional match rules via
  NFD configuration file.
2020-03-19 09:31:59 +02:00
Adrian Chiris
b9ab93559b Add Match Rules package to be used in Custom Source
- Add a Rule interface to help describe the contract
  between a match rule and the Custom source that uses it.

- Add PciIdRule - a rule that matches on the PCI attributes:
  class, vendor, device. Each is provided as a list of elements(strings).
  Match operation: OR will be performed per element and AND will be
  performed per attribute.
  An empty attribute will not be included in the matching process.
  Example:
  {
    "class": ["0200"]
    "vendor": ["15b3"]
    "device": ["1014", "1016"]
  }

- Add LoadedKmodRule - a rule that matches a list of kernel
  modules with the kernel modules currently loaded in the node.
  Example:
  {
    ["rdma_cm", "ib_core"]
  }
2020-03-17 18:00:05 +02:00
Adrian Chiris
0cfe03012b Add new feature Source - Custom with stubbed implementation 2020-03-12 15:15:16 +02:00
Adrian Chiris
a1a2429df1 Move PCI introspection logic to its own internal package
This will enable code reuse across sources while preventing
packages which are not under 'source' to import it.

subsequent commits will introduce the 'custom' source which
will use the logic.
2020-03-12 15:09:27 +02:00
Kubernetes Prow Robot
4b799b7e8f
Merge pull request #294 from RenaudWasTaken/deployment
Change nfd-master deployment mechanism from daemonset to deployment
2020-03-09 04:57:34 -07:00
Renaud Gaubert
db994410a7 Change nfd-master deployment mechanism from daemonset to deployment
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-03-06 15:35:02 -08:00
Kubernetes Prow Robot
ef5419c307
Merge pull request #295 from RenaudWasTaken/gitignore
Update gitignore to include yaml files generated from template
2020-03-06 00:33:23 -08:00
Renaud Gaubert
8cc4b08cc6 Update gitignore to include yaml files generated from template
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-03-05 16:30:09 -08:00
Kubernetes Prow Robot
7e728aecb9
Merge pull request #292 from marquiz/devel/e2e-node
test/e2e: more comprehensive per-node testing
2020-03-03 04:47:37 -08:00
Markus Lehtonen
362c0e4a0e travis: enable e2e-test-config
Use the contents of 'E2E_TEST_CONFIG_DATA' environment variable as the
e2e-test-config, enabling wider end-to-end test converage (assuming
E2E_TEST_CONFIG_DATA is properly populated).
2020-02-28 10:45:08 +02:00
Markus Lehtonen
3d5866a06d test/e2e: more comprehensive per-node testing
Implement an end-to-end test with all feature sources enabled. The new
test runs nfd-worker as a daemonset on all (schedulable) nodes of the
test cluster which makes it possible to cover a wide range features,
assuming the test cluster is heterogenous containing nodes with varying
system configurations.

The features available depends on the node(s) the e2e testa are run on.
Thus, some runtime parameterization of the tests is needed. The patch
adds a new command line test flag 'nfd.e2e-config' that is used to
specify the per-node feature labels and annotations that is expected to
be present in the cluster. An example configuration file is provided
with the patch. The pod spec of nfd-worker deployment is changed to
better correspond the default deployment and thus enable wider feature
discovery. This means using hostnetwork and adding mounts for /sys /boot
and /etc/os-release.

The patch changes node object management so that all nfd-related labels
are removed after each test (not just the ones the test is expected to
add). Also, all nfd-related annotations are now removed.
2020-02-28 10:37:26 +02:00
Markus Lehtonen
54eaf16871 nfd-master: export label and annotation prefixes
In order to be able to use the constants in end-to-end tests.
2020-02-27 14:21:00 +02:00
Kubernetes Prow Robot
208e1bc99e
Merge pull request #288 from mythi/sriov
pci: add sriov.capable attribute
2020-02-19 00:50:24 -08:00
Mikko Ylinen
24c3a98303 pci: add sriov.capable attribute
SR-IOV is a PCI attribute and also non-NIC PCI devices can have it. Therefore,
it is useful to label all PCI devices with that capability.

After this commit the following labels for Intel NICs are overlapping:
feature.node.kubernetes.io/pci-0200_8086.sriov.capable=true
feature.node.kubernetes.io/network-sriov.capable=true

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
2020-02-18 20:09:32 +02:00
Kubernetes Prow Robot
267ba6e1b2
Merge pull request #285 from marquiz/devel/docs-hooks
README: better document the usage of hooks and feature files
2020-02-15 04:39:28 -08:00
Markus Lehtonen
b7cc69fc80 README: better document the usage of hooks and feature files
Mention supported runtimes that the hooks can use and describe how hooks
and feature files can be used for injecting labels from other pods.
2020-02-14 14:05:17 +02:00
Kubernetes Prow Robot
f6d119d85e
Merge pull request #284 from marquiz/devel/readme
README: note on avoiding a race condition with hooks
2020-02-11 04:50:01 -08:00
Markus Lehtonen
66bf544ac5 README: note on avoiding a race condition with hooks 2020-02-11 14:31:10 +02:00
Kubernetes Prow Robot
5f781aa72c
Merge pull request #280 from ArangoGutierrez/update_go
Update go version in Dockerfile
2020-02-05 13:33:55 -08:00
Carlos Eduardo Arango Gutierrez
3e1e1a944b
Update go version to 1.13.5
Signed-off-by: Carlos Eduardo Arango Gutierrez <carangog@redhat.com>
2020-02-05 16:15:44 -05:00
Kubernetes Prow Robot
e76d85e4eb
Merge pull request #282 from marquiz/devel/k8s-1.17
go.mod: update kubernetes and its deps to v1.17.2
2020-02-05 10:55:55 -08:00
Markus Lehtonen
dbaf057525 go.mod: update test dependencies 2020-02-05 19:35:41 +02:00
Markus Lehtonen
974310251c test/e2e: adapt new wireframe to nfd context
Adapt the end-to-end test wireframe (copied from Kubernetes in the
previous commit) to node-feature-discovery.
2020-02-05 19:35:41 +02:00
Markus Lehtonen
e263c95adc test/e2e: re-copy e2e wireframe from Kubernetes
Sync with Kubernetes. Copy a wireframe for end-to-end tests directly
from Kubernetes v1.17.2.
2020-02-05 17:12:11 +02:00
Markus Lehtonen
2ad4ab708c go.mod: update kubernetes and its deps to v1.17.2 2020-02-05 17:01:53 +02:00
Markus Lehtonen
500a9e9b1a apihelpers: use Clientset.CoreV1()
Instead of the deprecated Clientset.Core().
2020-02-05 16:25:57 +02:00
Kubernetes Prow Robot
9590411085
Merge pull request #279 from askervin/cpuid_v1.2.3
vendor: update klauspost/cpuid
2020-01-29 07:08:17 -08:00
Antti Kervinen
d3d13347f8 vendor: update klauspost/cpuid
Update cpuid from v1.2.2 to v1.2.3. Brings in SGX improvements and
CPUID leaf 7 feature detection (VBMI2, VPOPCNTDQ, GFNI, VAES,
AVX512BITALG, VPCLMULQDQ, AVX512BF16, AVX512VP2INTERSECT). Blacklist
cpuid-SGX* (issue #130).

Signed-off-by: Antti Kervinen <antti.kervinen@intel.com>
2020-01-29 14:51:44 +02:00
Kubernetes Prow Robot
59ffd57524
Merge pull request #186 from marquiz/feature/e2e-tests-framework-travis
e2e test integration in Travis CI
2019-12-17 08:28:01 -08:00
Kubernetes Prow Robot
e2a80f00ad
Merge pull request #278 from marquiz/devel/makefile
Makefile: define go binary in a make variable
2019-12-17 07:49:59 -08:00
Markus Lehtonen
fec55ec335 Makefile: define go binary in a make variable
Makes testing with different go versions easier.
2019-12-17 15:41:42 +02:00
Markus Lehtonen
a332f8bae8 travis: run e2e tests on master branch
Assumes the test cluster to be hosted in AWS. The following environment
variables need to be properly configured in the CI in order to
successfully run the tests:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_REGION
KUBECONFIG_AWS

Also, the following are probably needed in order for the script to be be
able to push the container image to the remote registry:
IMAGE_REPO
IMAGE_REPO_PASSWORD
IMAGE_REPO_USER
2019-12-17 15:39:24 +02:00
Kubernetes Prow Robot
ee6fd9165b
Merge pull request #269 from marquiz/devel/gomod
Switch to using go modules
2019-12-16 04:33:37 -08:00
Kubernetes Prow Robot
201aee8bf5
Merge pull request #274 from marquiz/devel/v0.5.0
Refer to v0.5.0 release in README and the deployment templates
2019-11-22 06:59:29 -08:00
Markus Lehtonen
789a0073a6 Refer to v0.5.0 release in README and the deployment templates 2019-11-22 11:18:34 +02:00
Kubernetes Prow Robot
1902b77e4d
Merge pull request #273 from marquiz/devel/template-fixes
Add nfd namespace to the daemonset-combined deployment template
2019-11-21 06:51:28 -08:00
Markus Lehtonen
611916f807 Add nfd namespace to the daemonset-combined deployment template
Without this the nfd namespace is not created and the deployment may
fail.
2019-11-21 11:10:50 +02:00
Markus Lehtonen
f4d55ce040 Dockerfile: store build deps in a separate layer
Speeds up local builds considerably as the deps are cached (instead of
downloading them all on every build) - as long as go.mod and go.sum are
not changed.
2019-11-20 18:38:48 +02:00
Markus Lehtonen
67ddd87c41 Switch to using go modules
Update go version in Docker build image to v1.12.
2019-11-20 18:38:42 +02:00
Kubernetes Prow Robot
dcc67c502e
Merge pull request #271 from mythi/cpuid
vendor: update klauspost/cpuid
2019-11-06 23:54:43 -08:00
Mikko Ylinen
88b55dcc50 vendor: update klauspost/cpuid
Due to the constraint, pretty old version is being used. Update
the cpuid package to the latest master to get, e.g., AVX512_VNNI
and VMX detection.

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
2019-11-06 22:55:57 +02:00
Kubernetes Prow Robot
21f85df6eb
Merge pull request #266 from marquiz/devel/cpu-pstate
source/cpu: support 'false' status of cpu-pstate.turbo
2019-09-04 09:19:01 -07:00
Kubernetes Prow Robot
b4e1885064
Merge pull request #265 from marquiz/devel/worker
nfd-worker: don't connect to master when --no-publish is used
2019-09-03 10:58:59 -07:00