1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2024-12-15 17:50:49 +00:00
Commit graph

49 commits

Author SHA1 Message Date
Markus Lehtonen
c02e05245b test/e2e: test NodeFeature owner reference
Add tests for verifying that the automatic garbage-colletion of
NodeFeature objects created by nfd-worker works as expected.
2023-12-08 16:04:03 +02:00
Carlos Eduardo Arango Gutierrez
251f0d8a7e
Fix pkg name for test/utils/deployment
Signed-off-by: Carlos Eduardo Arango Gutierrez <eduardoa@nvidia.com>
2023-10-16 16:11:20 +02:00
Francesco Romani
000c919071 nfd-updater: events: enable timer-only flow
The nfd-topology-updater has state-directories notification mechanism
enabled by default.
In theory, we can have only timer-based updates, but if the option
is given to disable the state-directories event source, then all
the update mechanism is mistakenly disabled, including the
timer-based updates.

The two updaters mechanism should be decoupled.
So this PR changes this to make sure we can enable just and only
the timer-based updates.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2023-09-04 13:05:50 +02:00
Markus Lehtonen
f9fadd2102 test/e2e: add e2e test for nfd-gc 2023-08-22 21:24:26 +03:00
Markus Lehtonen
87371e2df0 test/e2e: adapt tests to updates in k8s e2e-framework
Add context to functions that now require it. Also, replace the
deprecated wait.Poll* calls with wait.PollUntilContextTimeout.
2023-04-18 23:04:34 +03:00
Markus Lehtonen
ad8bd057b7 test/e2e: use proper context
Eliminate all context.TODO() from the e2e tests and use ginkgo context
instead. This ensures that calls involving context are properly
cancelled and return fast in case the tests get aborted.
2023-04-18 14:55:09 +03:00
Fabiano Fidêncio
250aea4741
Create extended resources with NodeFeatureRule
Add support for management of Extended Resources via the
NodeFeatureRule CRD API.

There are usage scenarios where users want to advertise features
as extended resources instead of labels (or annotations).

This patch enables the discovery of extended resources, via annotation
and patch of node.status.capacity and node.status.allocatable. By using
the NodeFeatureRule API.

Co-authored-by: Carlos Eduardo Arango Gutierrez <eduardoa@nvidia.com>
Co-authored-by: Markus Lehtonen <markus.lehtonen@intel.com>
Co-authored-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
Signed-off-by: Carlos Eduardo Arango Gutierrez <eduardoa@nvidia.com>
2023-04-07 16:14:56 +02:00
Markus Lehtonen
5793207cf2 test/e2e: wait for CRD deletion to complete
Wait for the deletion of NFD CRDs to complete before trying to re-create
them. Prevents errors in case CRDs already exist on the cluster when
e2e-tests are launched.
2023-04-05 15:56:26 +03:00
Kubernetes Prow Robot
193c552b33
Merge pull request #1084 from AhmedGrati/feat-add-master-config-file
feat: add master config file
2023-04-04 10:41:40 -07:00
AhmedGrati
3fff409f6d Add master config file
Similar to the nfd-worker, in this PR we want to support the
dynamic run-time configurability through a config file for the nfd-master.

We'll use a json or yaml configuration file along with the fsnotify in
order to watch for changes in the config file. As a result, we're
allowing dynamic control of logging params, allowed namespaces,
extended resources, label whitelisting, and denied namespaces.

Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>
2023-04-03 09:52:09 +01:00
Talor Itzhak
6de13fe456 e2e: reactive updates test
Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2023-03-12 12:43:17 +02:00
pprokop
b51e34d84c Modify e2e tests to check if Topology Manager policy and scope are advertise as Attributes
Signed-off-by: pprokop <pprokop@nvidia.com>
2023-02-10 12:03:16 +01:00
Jose Luis Ojosnegros Manchón
2967f3307a nrt-api: move from v1alpha1 to v1alpha2 2023-02-09 12:29:54 +01:00
Markus Lehtonen
099f52ca36 test/e2e: more comprehensive test for NodeFeature objects
Test creation of multiple NodeFeature objects per node, mocking 3rd
party extensions.
2023-01-03 17:50:48 +02:00
Markus Lehtonen
59a2757115 Use single-dash format for nfd cmdline flags
Use the "single-dash" version of nfd command line flags in deployment
files and e2e-tests. No impact in functionality, just aligns with
documentation and other parts of the codebase.
2022-12-21 15:00:49 +02:00
Markus Lehtonen
b67d6d7282 test/e2e: add basic e2e-tests for NodeFeature API
Add an initial test set for the NodeFeature API. This is done simply by
running a second pass of the tests but with -enable-nodefeature-api
(i.e. NodeFeature API enabled and gRPC disabled). This should give basic
confidence that the API actually works and form a basis for further
imporovements on testing the new CRD API.
2022-12-19 16:58:21 +02:00
Kubernetes Prow Robot
e684197634
Merge pull request #932 from fmuyassarov/e2e-taints
Add E2E test for NFD tainting feature
2022-12-19 03:59:45 -08:00
Feruzjon Muyassarov
3e29f5c5df Add nfd E2E tests for tainting feature
Extend current E2E tests to check tainting feature of nfd implemented
in https://github.com/kubernetes-sigs/node-feature-discovery/pull/910

Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-12-19 13:39:03 +02:00
Markus Lehtonen
fd0b812433 test/e2e: drop host-usr-src mount
Allows running e2e-tests in some more restricted environments.
2022-12-15 16:49:27 +02:00
Feruzjon Muyassarov
ae8ba01c2c E2E: default seccompProfile to runtimeDefault for nfd worker
Use RuntimeDefault seccomp profile in nfd worker and topology
updater pod spec similar to nfd master.

Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-12-14 17:04:38 +02:00
Markus Lehtonen
13f3959ebe test/e2e: fix creation of NFD CRDs
After introducing NodeFeatureRule we packed two CRD definitions in one
yaml file. Our e2e-tests were not prepared to that and the file itself
was also renamed so it couldn't even be read by the test suite.

With this change the e2e-tests start to create NodeFeatre CRD in the
test cluster, preparing for the addition of e2e-tests for NodeFeature
API.
2022-12-14 14:44:17 +02:00
Feruzjon Muyassarov
b296bdf0b3 update test functions according to upstream deprecated/removed methods
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-12-13 12:12:50 +02:00
Feruzjon Muyassarov
409312e111 Bump go.mod k8s.io to 1.26
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-12-13 12:12:46 +02:00
Markus Lehtonen
f13ed2d91c nfd-topology-updater: update NodeResourceTopology objects directly
Drop the gRPC communication to nfd-master and connect to the Kubernetes
API server directly when updating NodeResourceTopology objects.
Topology-updater already has connection to the API server for listing
Pods so this is not that dramatic change. It also simplifies the code
a lot as there is no need for the NFD gRPC client and no need for
managing TLS certs/keys.

This change aligns nfd-topology-updater with the future direction of
nfd-worker where the gRPC API is being dropped and replaced by a
CRD-based API.

This patch also update deployment files and documentation to reflect
this change.
2022-12-08 11:03:22 +02:00
Markus Lehtonen
42ae216284 test/e2e: no pod restart policy of nfd-worker by default
Fixes stricter API check on daemonset pod spec that started to cause e2e
test failures. RestartPolicyNever that we previously set (by defaylt)
isn't compatible with DaemonSets.
2022-12-01 16:14:11 +02:00
Talor Itzhak
0a06562930 e2e: simplify sleeper pod
Make it more flexiable by allowing modifying both
CPU and memory values, using functional options

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-29 14:39:54 +02:00
Talor Itzhak
9c725c378f e2e: separate daemonset functions from pod
The new package should provide pod-related utilities,
hence let's move all the daemonset-related utilities
to their own package as well.

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-29 14:39:52 +02:00
Talor Itzhak
6364803b0c e2e: move pod utils to a seperate package
By moving those utils in to a seperate package,
we can make the functions names shorter and clearer.

For example, instead of:
```
testutils.NFDWorkerPod(opts...)
testutils.NFDMasterPod(opts...)
testutils.SpecWithContainerImage(...)
```
we'll have:
```
testpod.NFDWorker(opts...)
testpod.NFDMaster(opts...)
testpod.SpecWithContainerImage(...)
```

It will also make the package more isolated and portable.

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-29 13:47:00 +02:00
Kubernetes Prow Robot
ef2c498a6f
Merge pull request #966 from k8stopologyawareschedwg/sc_for_master
e2e: add SecurityContext to master
2022-11-24 22:18:04 -08:00
Talor Itzhak
f31b70dce4 e2e: add SecurityContext to master
The master pod need these `SecurityContext` configurations
In order to run inside a namespace with restricted policy

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2022-11-24 14:48:01 +02:00
Markus Lehtonen
0174a6405b test/e2e: add helper for creating new configmaps
Implement a simple helper for creating a configmap with one key. One key
(one config file) is enough for our current tests.
2022-11-24 10:56:15 +02: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
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
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
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
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
Feruzjon Muyassarov
71434a1392 Standardize "k8s.io/api/core/v1" package short name
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-10-15 02:22:41 +03:00
Feruzjon Muyassarov
e79f09deb2 Error strings should not be capitalized
Error strings should not be capitalized (ST1005) & remove the
redundancy from array, slice or map composite literals.
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-10-14 15:43:18 +03:00
Markus Lehtonen
6ef6112d58 test/e2e: add tests for NodeFeatureRules
Add tests covering the basic functionality of NodeFeatureRule objects,
covering different feature types ("flag features", "attribute features"
and "instance features") as well as backreferencing (using the output of
previously run rules) and templating. The test relies on the "fake"
feature source and its default configuration.
2022-10-11 17:23:52 +03:00
Kubernetes Prow Robot
37e21bfd37
Merge pull request #891 from marquiz/fixes/e2e-no-config
test/e2e: fix segfault in case no e2e config file is specified
2022-10-10 04:09:20 -07:00
Markus Lehtonen
02955b57c7 test/e2e: fix segfault in case no e2e config file is specified 2022-09-14 11:00:16 +03:00
Kubernetes Prow Robot
15f0cea172
Merge pull request #888 from marquiz/devel/k8s-1.25
Update kubernetes to v1.25.0
2022-09-13 08:17:05 -07:00
Markus Lehtonen
f21315d85f Update kubernetes registry to registry.k8s.io
Update registry location for non-nfd images.
2022-09-12 11:23:04 +03:00
Markus Lehtonen
c09225f75c test/e2e: drop utils/kubeletconfig.go
The required fix is in kubernetes v1.25.0 so we can drop this local
copy.
2022-09-09 10:55:03 +03:00
Markus Lehtonen
449b0b2199 go.mod: update kubernetes to v1.25.0 2022-09-09 10:55:03 +03:00
Francesco Romani
d70f8c65af test: utils: borrow fixed GetKubeletConfig from k/k
We need this fix https://github.com/kubernetes/kubernetes/pull/110875
to have reliable tests, but up until we can bump the k/k deps to 1.25+,
we can't consume it.

So borrow it from k/k repo for the time being.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2022-08-11 08:53:01 +02:00
Francesco Romani
7d37f72480 e2e: add basic topology updater test
Co-authored-by: Swati Sehgal <swsehgal@redhat.com>
Co-authored-by: Francesco Romani <fromani@redhat.com>
Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2022-08-11 08:53:01 +02:00
Francesco Romani
622adf3863 test: e2e: configurable pull policy
In some cases (CI) it is useful to run NFD e2e tests using
ephemeral clusters. To save time and bandwidth, it is also useful
to prime the ephemeral cluster with the images under test.

In these circumstances there is no risk of running a stale image,
and having a `Always` PullPolicy hardcoded actually makes
the whole exercise null.

So we add a new option, disabled by default, to make the e2e
manifest use the `IfNotPresent` pull policy, to effectively
cover this use case.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2022-08-10 15:06:59 +02:00
Artyom Lukianov
e169edcb9f Move helpers method to the separate package
Co-Authored-By Francesco Romani <fromani@redhat.com>
Signed-off-by: Artyom Lukianov <alukiano@redhat.com>
2022-08-09 13:47:52 +02:00