1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2025-03-06 16:57:10 +00:00
Commit graph

1506 commits

Author SHA1 Message Date
Markus Lehtonen
eb8e29c80a nfd-worker: drop deprecated command line flags
Drop the following flags that were deprecated already in v0.8.0:

-sleep-interval  (replaced by core.sleepInterval config file option)
-label-whitelist (replaced by core.labelWhiteList config file option)
-sources         (replaced by -label-sources flag)
2022-11-23 22:33:51 +02:00
Kubernetes Prow Robot
213bbdc8d7
Merge pull request #964 from marquiz/devel/e2e-pod-opts
test/e2e: more flexible pod spec generation
2022-11-23 10:32:15 -08:00
Markus Lehtonen
1719ce6736 test/e2e: more flexible pod spec generation
Change the pod spec generator functions to accept parameterization in
the form of more generic "mutator functions". This makes the addition of
new test specific pod spec customizations a lot cleaner. Plus, hopefully
makes the code a bit more readable as well.

Also, slightly simplify the SpecWithConfigMap() but dropping one
redundant argument.

Inspired by latest contributions by Talor Itzhak (titzhak@redhat.com).
2022-11-23 09:36:14 +02:00
Kubernetes Prow Robot
592d6c67d0
Merge pull request #949 from k8stopologyawareschedwg/exclude_list
topology-updater: introduce exclude-list
2022-11-21 23:26:13 -08:00
Talor Itzhak
d495376f06 docs: topology-updater: update docs for exclude-list feature
Update the docs with explanations and examples
about the exclude-list feature.

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 21:31:51 +02:00
Talor Itzhak
f832a7e4a8 helm: topology-updater: enable the configuration via helm
- Add a helm template with a config example for the exclude-list.
- Add mount for the topology-updater.conf file
- Update the templates Makefile target

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 21:31:37 +02:00
Talor Itzhak
8b5918a2e9 kustomize: topology-updater: enable the configuration via kustomization
Add a kustomization file with a config example for the exclude-list.

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 21:31:14 +02:00
Talor Itzhak
2896541bf1 e2e: topology-updater: add e2e test for exclude-list feature
Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 21:30:53 +02:00
Talor Itzhak
1385d50222 e2e: topology-updater: decouple configuration from creation
Different tests requires different configuration
of the topology-updater DaemonSet.
Here, we decouple the configuration from the creation part
using `JustBeforeEach` so that each test container
will has its own configuration.

Additional reading:
https://onsi.github.io/ginkgo/#separating-creation-and-configuration-justbeforeeach

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 14:08:25 +02:00
Talor Itzhak
5b0788ced4 topology-updater: introduce exclude-list
The exclude-list allows to filter specific resource accounting
from NRT's objects per node basis.

The CRs created by the topology-updater are used by the scheduler-plugin
as a source of truth for making scheduling decisions.
As such, this feature allows to hide specific information
from the scheduler, which in turn
will affect the scheduling decision.
A common use case is when user would like to perform scheduling
decisions which are based on a specific resource.
In that case, we can exclude all the other resources
which we don't want the scheduler to exemine.

The exclude-list is provided to the topology-updater via a ConfigMap.
Resource type's names specified in the list should match the names
as shown here: https://pkg.go.dev/k8s.io/api/core/v1#ResourceName

This is a resurrection of an old work started here:
https://github.com/kubernetes-sigs/node-feature-discovery/pull/545

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 14:08:25 +02:00
Kubernetes Prow Robot
2c0b6f345f
Merge pull request #961 from k8stopologyawareschedwg/fix_topologyupdater_e2e
e2e: topologyupdater: fix and stabilize tests
2022-11-21 03:56:31 -08:00
Talor Itzhak
546d0c3a1b e2e: topologyupdater: wait for deletion
It might take time for the CRD to get deleted
and it might cause some falkiness in the tests.

Now before we create the CRD, we make sure to delete
the old object, wait for it deletion to complete
and only then create a new CRD object.

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 12:26:42 +02:00
Talor Itzhak
1b6fad6427 e2e: topologyupdater: insert condition check into eventually
We might not get the most updated node topology
resource on the first `GET` call.
Hence, put the whole check inside `Eventually`,
and check for the most updated node topology resource on every
iteration.

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 12:26:42 +02:00
Talor Itzhak
a65278d890 e2e: podSecurity: adapt PodSecurity constraints
The tested pods have some lax spec wrt security,
hence a restrict podSecurity namespace won't allow running those pods.

In topology-updater tests, the topology-updater pod
needs to run the container as root
so change the namespace podSecurity from restricted to priviliged.

In node-feature-discovery tests, we don't need root access,
so add the required security context configuration.

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-21 12:26:36 +02:00
Kubernetes Prow Robot
be8012e035
Merge pull request #960 from marquiz/fixes/e2e
test/e2e: fix topologu-updater cmdline args
2022-11-17 04:12:39 -08:00
Markus Lehtonen
a32ed5ecb1 test/e2e: fix topologu-updater cmdline args
The -kubelet-config-file flag got renamed to -kubelet-config-uri and the
expected format changed from plain filepath to URI.
2022-11-17 13:53:41 +02:00
Kubernetes Prow Robot
bbd383b302
Merge pull request #959 from marquiz/docs/deps
docs: update github-pages gem to v227
2022-11-16 14:32:50 -08:00
Markus Lehtonen
6f49421c0e docs: update github-pages gem to v227 2022-11-16 21:08:13 +02:00
Kubernetes Prow Robot
554145f477
Merge pull request #842 from Garrybest/pr_config
nfd-topology-updater: retrieve kubelet config from API `/configz`
2022-11-11 04:12:11 -08:00
Garrybest
3ec1b94020 get kubelet config from configz
Signed-off-by: Garrybest <garrybest@foxmail.com>
2022-11-08 23:52:35 +08:00
Kubernetes Prow Robot
add6f187f6
Merge pull request #927 from yselkowitz/cpuid
cpu: fix 32-bit ARMv8 CPU flags
2022-11-08 07:08:23 -08:00
Kubernetes Prow Robot
49119ed74b
Merge pull request #952 from fmuyassarov/add-client-arg
Add argument to updateNodeFeatures method to pass client from caller
2022-11-07 01:54:16 -08:00
Feruzjon Muyassarov
7ea0e0b0a7 Add argument to updateNodeFeatures method to pass client from caller
This commit adds an argument to updateNodeFeatures method for receiving
client argument, which currently gets initialized within the method
itself. This is a minor improvement for https://github.com/kubernetes-sigs/node-feature-discovery/pull/910.

Ref:https://github.com/kubernetes-sigs/node-feature-discovery/pull/910#discussion_r1012703631

Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-11-06 22:37:11 +02:00
Kubernetes Prow Robot
c1c235070c
Merge pull request #950 from marquiz/devel/docs-restructure
docs: restructure docs
2022-11-03 01:41:36 -07:00
Markus Lehtonen
6171c745a4 docs: restructure docs
Introduce two main sections "Deployment" and "Usage" and move "Developer
guide" to the top level, too. In particular, split the huge
deployment-and-usage file into multiple parts under the new main
sections. Move customization guide from "Advanced" to "Usage".
This patch also renames "Advanced" to "Reference" as only that is left
there is reference documentation.
2022-11-03 10:26:56 +02:00
Kubernetes Prow Robot
34781af9e5
Merge pull request #917 from fmuyassarov/ephemeral-e2e
add ephemeral environment for e2e test execution
2022-11-02 10:35:15 -07:00
Kubernetes Prow Robot
601d6943dc
Merge pull request #948 from marquiz/fixes/docs
docs: update the name of the base image
2022-11-02 10:05:16 -07:00
Feruzjon Muyassarov
0118215826 Add ephemeral E2E test environment
This patch adds a script to run E2E test on kind ephemeral cluster
that gets deleted by the end of each test. Eventually, we will use
this script on pull requests as a presubmit test.

Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-11-02 15:30:56 +02:00
Markus Lehtonen
3a279ce751 docs: update the name of the base image 2022-11-02 15:10:46 +02:00
Kubernetes Prow Robot
8bbccee970
Merge pull request #946 from marquiz/devel/readme
README: update deployment instructions to use v0.11.3
2022-11-01 04:08:45 -07:00
Markus Lehtonen
b81fc42cd3 README: update deployment instructions to use v0.11.3 2022-11-01 11:31:36 +02:00
Kubernetes Prow Robot
f454e74bba
Merge pull request #938 from fmuyassarov/increase-timeout
Increase image waiting timeout
2022-10-28 06:46:31 -07:00
Feruzjon Muyassarov
ea8906203a Increase image waiting timeout
We recently increase timeout for image building and pushing to GCR
due to some failures with timeout. This commit extends timeout for
waiting that image to be published.
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-10-27 23:26:26 +03:00
Kubernetes Prow Robot
671b35667a
Merge pull request #936 from fmuyassarov/increase-build-timeout
Increase allowed image build timeout for 500s
2022-10-27 05:54:32 -07:00
Kubernetes Prow Robot
e5c8180558
Merge pull request #937 from pacoxu/master
Stop using the beta.kubernetes.io/os and arch labels
2022-10-27 05:36:32 -07:00
Paco Xu
4e12ed8aac Stop using the beta.kubernetes.io/os and arch labels 2022-10-27 11:03:14 +08:00
Feruzjon Muyassarov
3f33bd94ef Increase allowed image build timeout
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-10-27 01:03:25 +03:00
Kubernetes Prow Robot
0a95533fe3
Merge pull request #935 from marquiz/fixes/rule-templating
apis/nfd: fix NodeFeatureRule templating
2022-10-26 01:08:36 -07:00
Markus Lehtonen
7c24b50f74 apis/nfd: fix NodeFeatureRule templating
Fix handling of templates that got broken in
b907d07d7e when "flattening" the internal
data structure of features. That happened because the golang
text/template format uses dots to reference fields of a struct /
elements of a map (i.e. 'foo.bar' means that 'bar' must be a sub-element
of foo). Thus, using dots in our feature names (e.g. 'cpu.cpuid') means
that that hierarchy must be reflected in the data structure that is fed
to the templating engine. Thus, for templates we're now stuck stuck with
two level hierarchy. It doesn't really matter for now as all our
features follow that naming patter. We might be able to overcome this
limitation e.g.  by using reflect but that's left as a future exercise.
2022-10-25 23:37:27 +03:00
Kubernetes Prow Robot
1911abe9f4
Merge pull request #933 from marquiz/devel/sysfs-usb
source/usb: scan host sysfs
2022-10-24 11:52:23 -07:00
Markus Lehtonen
bdbf96d7d4 source/usb: scan host sysfs
Scan the mounted host sysfs instead of hard coded /sys mount point.
Currently, sysfs devices subdir is not namespaced in Linux (containers
have the same view as the host) so this wasn't an issue in practice.
However, this change should make the code more future proof and align
usb with other sysfs detection in nfd.
2022-10-24 20:53:10 +03:00
Kubernetes Prow Robot
a65ee959b9
Merge pull request #925 from marquiz/devel/feature-api-flatten
apis/nfd: flatten the structure of features data type
2022-10-24 01:14:26 -07:00
Kubernetes Prow Robot
32d507103f
Merge pull request #930 from fmuyassarov/bump-gomega
Bump Kubernetes to v1.25.3
2022-10-21 05:55:51 -07:00
Feruzjon Muyassarov
bb7e6d7d47 Bump Kubernetes to v1.25.3
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-10-21 15:35:30 +03:00
Yaakov Selkowitz
223205595b cpu: fix 32-bit ARMv8 CPU flags
32-bit ARMv8 Crypto Extensions are exposed through AT_HWCAP2.

IDIV is not an individual flag, but indicates both IDIVA and IDIVT are
present.
2022-10-20 10:33:36 -04:00
Kubernetes Prow Robot
d8890a6ffe
Merge pull request #929 from k8stopologyawareschedwg/nfd-rearm-on-error
topology-updater: continue looping on scan error
2022-10-20 04:54:57 -07:00
Francesco Romani
700d9e215c topology-updater: continue looping on scan error
Scanning podresources can temporarily fail; the previous code was
mistakenly not rearming the loop condition when this occurred,
effectively stopping the monitoring.

Rather, we should always pool and bail out on unrecoverable
error or when asked to stop.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2022-10-20 10:08:13 +02:00
Kubernetes Prow Robot
4d153ae0c3
Merge pull request #914 from marquiz/fixes/cpuid-ppc
cpu: ignore unknown cpuid flags on non-x86
2022-10-20 00:40:57 -07:00
Markus Lehtonen
9ea787bc99 apis/nfd: update auto-generated code
Re-generate after the latest API change. Involves renaming the crd spec
files.
2022-10-18 18:41:53 +03:00
Markus Lehtonen
b907d07d7e apis/nfd: flatten the structure of features data type
Flatten the data structure that stores features, dropping the "domain"
level from the data model. That extra level of hierarchy brought little
benefit but just caused some extra complexity, instead. The new
structure nicely matches what we have in the NodeFeatureRule object (the
matchFeatures field of uses the same flat structure with the "feature"
field having a value <domain>.<feature>, e.g. "kernel.version").

This is pre-work for introducing a new "node feature" CRD that contains
the raw feature data. It makes the life of both users and developers
easier when both CRDs, plus our internal code, handle feature data in a
similar flat structure.
2022-10-18 18:37:28 +03:00