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

1386 commits

Author SHA1 Message Date
Feruzjon Muyassarov
984a3de198 Document tainting feature
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-12-02 17:29:10 +02:00
Feruzjon Muyassarov
2bdf427b89 nfd-master logic update for setting node taints
This commits extends NFD master code to support adding node taints
from NodeFeatureRule CR. We also introduce a new annotation for
taints which helps to identify if the taint set on node is owned
by NFD or not. When user deletes the taint entry from
NodeFeatureRule CR, NFD will remove the taint from the node. But
to avoid accidental deletion of taints not owned by the NFD, it
needs to know the owner. Keeping track of NFD set taints in the
annotation can be used during the filtering of the owner. Also
enable-taints flag is added to allow users opt in/out for node
tainting feature. The flag takes precedence over taints defined
in NodeFeatureRule CR. In other words, if enbale-taints is set to
false(disabled) and user still defines taints on the CR, NFD will
ignore those taints and skip them from setting on the node.

Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-12-02 17:25:00 +02:00
Feruzjon Muyassarov
532e1193ce Add taints field to NodeFeatureRule CR spec
Extend NodeFeatureRule Spec with taints field to allow users to
specify the list of the taints they want to be set on the node if
rule matches.

Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@intel.com>
2022-12-02 17:25:00 +02:00
Kubernetes Prow Robot
1accbbf337
Merge pull request #975 from marquiz/fixes/e2e
test/e2e: no pod restart policy of nfd-worker by default
2022-12-02 00:37:54 -08:00
Kubernetes Prow Robot
f740f084e0
Merge pull request #976 from marquiz/docs/customization-guide
docs: small update to customization guide
2022-12-01 12:51:55 -08:00
Kubernetes Prow Robot
4dee120a81
Merge pull request #977 from marquiz/devel/mdlint
scripts/mdlint: update mdlint to v0.12.0
2022-12-01 12:45:54 -08:00
Markus Lehtonen
72e523f277 scripts/mdlint: update mdlint to v0.12.0 2022-12-01 20:57:21 +02:00
Markus Lehtonen
32b252147c docs: small update to customization guide
Add a reference to the label rule format in the NodeFeatureRule section.
Also make it explicit in the beginning of Hooks section that hooks are
deprecated.
2022-12-01 18:33:48 +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
Kubernetes Prow Robot
fbce8d7702
Merge pull request #973 from marquiz/docs/quickstart
docs: simplify quick-start page
2022-12-01 05:06:27 -08:00
Markus Lehtonen
8a45384037 docs: simplify quick-start page
Move topology-updater deployment notes to the topology-updater usage
page. Also, rework the plaintext and headings a bit.
2022-12-01 12:22:23 +02:00
Kubernetes Prow Robot
d5e7f9091f
Merge pull request #974 from marquiz/docs/crds
docs: better document custom resources
2022-12-01 01:18:27 -08:00
Markus Lehtonen
cdc7558f6f docs: better document custom resources
Add a separate page for describing the custom resources used by NFD.
Simplify the Introduction page by moving the details of
NodeResourceTopology from there. Similarly, drop long
NodeResourceTopology example from the quick-start page, making the page
shorter and simpler.
2022-12-01 11:12:59 +02:00
Kubernetes Prow Robot
c22604ebb8
Merge pull request #967 from k8stopologyawareschedwg/move_pod_utils
e2e: move pod utils to a seperate package
2022-11-30 04:00:54 -08:00
Kubernetes Prow Robot
ff1565f637
Merge pull request #972 from marquiz/fixes/deployment
deployment: drop stale nfd-api-crds.yaml
2022-11-30 02:24:55 -08: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
37d51c96f1 deployment: drop stale nfd-api-crds.yaml
Remove a stale unused file that was accidentally committed from an
experimental work.
2022-11-29 13:46:30 +02:00
Kubernetes Prow Robot
87573b08ba
Merge pull request #971 from marquiz/fixes/e2e
test/e2e: remove dropped -sleep-interval arg
2022-11-29 01:01:22 -08: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
efc833d1c7
Merge pull request #970 from marquiz/docs/worker-helm-sa-params
docs: document helm chart params related to worker serviceaccount
2022-11-28 08:36:08 -08:00
Kubernetes Prow Robot
a4627758d9
Merge pull request #969 from marquiz/docs/helm-params-fix
docs: revise topology-updater helm chart rbac parameters
2022-11-28 08:26:07 -08:00
Markus Lehtonen
d0a4cf7564 docs: document helm chart params related to worker serviceaccount 2022-11-28 18:07:17 +02:00
Markus Lehtonen
c1fa8b2f28 docs: revise topology-updater helm chart rbac parameters 2022-11-28 17:49:19 +02:00
Kubernetes Prow Robot
3139897588
Merge pull request #968 from marquiz/devel/worker-flags
nfd-worker: drop deprecated command line flags
2022-11-28 00:26:07 -08: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
Kubernetes Prow Robot
7bab38a51e
Merge pull request #965 from marquiz/devel/e2e-confifmap
test/e2e: add helper for creating new configmaps
2022-11-24 15:46: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
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