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

109 commits

Author SHA1 Message Date
Kubernetes Prow Robot
60f052f086
Merge pull request #1116 from marquiz/devel/e2e-crd-deletion
test/e2e: wait for CRD deletion to complete
2023-04-05 07:31:40 -07: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
Markus Lehtonen
68c3bf317b test/e2e: fix node cleanup function
The node cleanup function was not removing all NFD-labels. It omitted
NFD-originated labels that used a non-default label namespace. This
patch fixes the issue by getting all NFD-managed labels from the special
annotation (nfd.node.kubernetes.io/feature-labels).

The patch also adds the ability to cleanup extended resources in a
similar way. This will be needed by future work.

Also changes the order of cleaning up CRs and the node. It is the right
order as cleaning up the CRs may still update the node.
2023-04-05 15:09:25 +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
AhmedGrati
16abfd7b0e test: implement e2e test of the deny-label-ns flag
Signed-off-by: AhmedGrati <ahmedgrati1999@gmail.com>
2023-03-10 11:11:36 +01:00
Kubernetes Prow Robot
2b865759fd
Merge pull request #1073 from marquiz/devel/e2e-worker-wait
test/e2e: reduce worker wait-for-ready period to 2s
2023-03-07 04:18:18 -08:00
Markus Lehtonen
66f6ea76dd test/e2e: cleanup NodeFeature objects before/after tests
Make sure that stale NodeFeature objects from previous test case are not
interfering the next one.
2023-03-07 13:24:01 +02:00
Markus Lehtonen
67bb6c2d5f test/e2e: reduce worker wait-for-ready period to 2s
Reduce the wait time of nfd-worker pods to be in ready-state (before
proceeding with tests) from five to two seconds. Make tests faster to
run. Two seconds should be enough for nfd-workers to do their job and
get nodes labeled.
2023-03-07 11:35:42 +02:00
Kubernetes Prow Robot
163a6dc502
Merge pull request #1049 from jlojosnegros/node-signature
topology-updater:compute pod set fingerprint
2023-02-22 02:05:58 -08:00
Jose Luis Ojosnegros Manchón
b65015027f topology-updater: e2e test for podFingerprint 2023-02-22 10:22:50 +01:00
Markus Lehtonen
adf79d5e38 test/e2e: rename ginkgo focus for tests
Make it easier to only run tests for nfd master/worker and skip
topology-updater tests.
2023-02-21 13:37:25 +02:00
Markus Lehtonen
cc57fa6a93 test/e2e: drop deprecated rand.Seed()
Just drop it, bump to golang v1.20 will cause the generator to be
automatically seeded at program startup:

https://pkg.go.dev/math/rand@go1.20#Seed
2023-02-16 19:22:35 +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
Talor Itzhak
97ca4deabc e2e: init docker image
The docker image that used during e2e test
composed of repo and tag flags that are
passed to the test itself.

The problem is that the docker image initialized
before the flags are parsed. Hence, it will always contains
the default flags value.
Moving the variable into a separate function, fixing the issue.

Also, moving the global variables to `e2e_test.go` since
it commonly used by all tests.

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2023-01-11 16:44:40 +02:00
Talor Itzhak
d8981f892e e2e: append _test suffix to test files
This PR is a result of conversation started here:
https://github.com/kubernetes-sigs/node-feature-discovery/pull/1028#issuecomment-1378634404

Signed-off-by: Talor Itzhak <titzhak@redhat.com>
2023-01-11 14:15:45 +02: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
f5ae3fe2c7 Simplify usage of ObjectMeta fields
No need to explicitly spell out ObjectMeta as it's embedded in the
object types.
2022-12-19 17:40:10 +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
Markus Lehtonen
958db56680 test/e2e: isolate tests into a separate function
Preparation for running the same tests with NodeFeature API enabled
(instead of gRPC).
2022-12-19 14:08:05 +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
Kubernetes Prow Robot
4635b99832
Merge pull request #1003 from marquiz/devel/e2e-host-usr-src
test/e2e: drop host-usr-src mount
2022-12-19 02:35:45 -08:00
Markus Lehtonen
51f4c5447b test/e2e: don't expect control-plane nodes to be labeled
Without this e2e tests may fail in clusters with control-plane-only
nodes.
2022-12-16 22:56:19 +02:00
Kubernetes Prow Robot
87c1a3d47d
Merge pull request #1002 from marquiz/devel/e2e-podsecurity
test/e2e: drop pod security enforcement label from the test namespace
2022-12-15 23:01:37 -08:00
Kubernetes Prow Robot
8d2adfd1f5
Merge pull request #996 from fmuyassarov/parametirize-image
E2E: parameterize container image and tag
2022-12-15 08:35:37 -08:00
Markus Lehtonen
7b2add434c test/e2e: drop pod security enforcement label from the test namespace
Drop the pod-security.kubernetes.io/enforce label from the test
namespace, i.e. remove pod security admission enforcement. NFD-worker
uses restricted host mounts (/sys) etc so pod creation fails even in
privileged mode if pod security admission enforcement is enabled.
2022-12-15 17:43:44 +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
Kubernetes Prow Robot
323fd5c6ec
Merge pull request #995 from fmuyassarov/seccomp-profile-nfd-worker
E2E: default seccompProfile to runtimeDefault for nfd worker
2022-12-14 12:45:34 -08:00
Markus Lehtonen
f04e1a9404 test/e2e: fix mistake in ginkgo focus
Leftover from development that got accidentally merged in
43910e6925
2022-12-14 21:59:15 +02:00
Markus Lehtonen
43910e6925 test/e2e: create CRDs once in the beginning of the tests
Only generate CRDs once in the beginning of the test run. Use the "Ordered"
option for the test container so that we can utilize ginkgo.BeforeAll to
only do stuff once before the first test. Changing from unordered to
ordered shouldn't make a big difference here.

Add a cleanup function to remove stale NodeFeatureRule objects that are
cluster-scoped and not deleted with the test namespace.
2022-12-14 18:42:00 +02:00
Feruzjon Muyassarov
5d08f1cd7c E2E:parameterize container image and tag
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-12-14 17:16:03 +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
Markus Lehtonen
6f02ef92de test/e2e: remove dropped -sleep-interval arg
Replace with a ConfigMap-based configuration.
2022-11-29 10:22:48 +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