Commit Graph

572 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
e6099268e3 Merge pull request #125080 from TommyStarK/unit-tests/kubelet-apis-config-validation
kubelet/apis/config/validation: improve unit test coverage
2024-10-17 17:17:10 +01:00
Kubernetes Prow Robot
f5b92902a3 Merge pull request #124434 from tu1h/fix-compute-resources-link
API docs: point outdate link to current link
2024-10-17 17:17:03 +01:00
Kubernetes Prow Robot
a7fcc89ac0 Merge pull request #125936 from sivchari/use-ptr
use utils/ptr package instead of utils/pointer
2024-10-07 01:02:04 +01:00
Harshal Patil
3bad47e8ed Set only compressible resources on system slice
Signed-off-by: Harshal Patil <harpatil@redhat.com>
2024-10-03 13:23:34 -04:00
sivchari
4eab3cca0a use utils/ptr package instead of utils/pointer
Signed-off-by: sivchari <shibuuuu5@gmail.com>
2024-10-03 11:33:12 +09:00
Joe Betz
2595aa1309 generate 2024-09-03 14:26:26 -04:00
Kubernetes Prow Robot
fbdfb9d8d9 Merge pull request #126031 from harche/kubelet_cgroupv1_arg
KEP-4569: Kubelet option to disable cgroup v1 support
2024-07-23 09:21:11 -07:00
Patrick Ohly
877829aeaa DRA kubelet: adapt to v1alpha3 API
This adds the ability to select specific requests inside a claim for a
container.

NodePrepareResources is always called, even if the claim is not used by any
container. This could be useful for drivers where that call has some effect
other than injecting CDI device IDs into containers. It also ensures that
drivers can validate configs.

The pod resource API can no longer report a class for each claim because there
is no such 1:1 relationship anymore. Instead, that API reports claim,
API devices (with driver/pool/device as ID) and CDI device IDs. The kubelet
itself doesn't extract that information from the claim. Instead, it relies on
drivers to report this information when the claim gets prepared. This isolates
the kubelet from API changes.

Because of a faulty E2E test, kubelet was told to contact the wrong driver for
a claim. This was not visible in the kubelet log output. Now changes to the
claim info cache are getting logged. While at it, naming of variables and some
existing log output gets harmonized.

Co-authored-by: Oksana Baranova <oksana.baranova@intel.com>
Co-authored-by: Ed Bartosh <eduard.bartosh@intel.com>
2024-07-22 18:09:34 +02:00
tu1h
73e7dc65e1 API docs: point outdate link to current link
Signed-off-by: tu1h <lihai.tu@daocloud.io>
2024-07-22 11:53:13 +08:00
Kubernetes Prow Robot
5fc7032a0e Merge pull request #126156 from pohly/kubelet-test-enhancements
kubelet test enhancements
2024-07-18 14:50:54 -07:00
Harshal Patil
fff2b7f566 Kubelet option to disable cgroup v1 support
Signed-off-by: Harshal Patil <harpatil@redhat.com>
2024-07-18 14:00:21 -04:00
Patrick Ohly
6604ff94d8 kubelet: enhance podresources tests
The manual deep comparison code is hard to maintain (would need to be updated
in https://github.com/kubernetes/kubernetes/pull/125488) and error prone.

In fact, one test case failed when doing a full automatic comparison with
cmp.Diff because it wasn't setting allMemory.
2024-07-17 17:50:10 +02:00
SataQiu
716d66cdf3 kubelet: adjust the validation logic to treat [none] as the EnforceNodeAllocatable is disabled 2024-07-16 18:36:38 +08:00
Kubernetes Prow Robot
eb9b928c23 Merge pull request #123137 from neolit123/1.30-update-kubelet-validation-fields
kubelet: warn instead of error for unsupported options on Windows
2024-07-15 19:27:09 -07:00
Stephen Kitt
3f36c83c68 Switch to stretchr/testify / mockery for mocks
testify is used throughout the codebase; this switches mocks from
gomock to testify with the help of mockery for code generation.

Handlers and mocks in test/utils/oidc are moved to a new package:
mockery operates package by package, and requires packages to build
correctly; test/utils/oidc/testserver.go relies on the mocks and fails
to build when they are removed. Moving the interface and mocks to a
different package allows mockery to process that package without
having to build testserver.go.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2024-06-20 19:42:53 +02:00
Kubernetes Prow Robot
a8d51f4f05 Use a generic Set instead of a specified Set in kubelet
Signed-off-by: bzsuni <bingzhe.sun@daocloud.io>
2024-06-04 14:25:43 +08:00
Lubomir I. Ivanov
3301efa6a0 kubelet: warn instead of error for unsupported options on Windows
Make validateKubeletOSConfiguration() show warnings instead of
returning errors on Windows for the fields "CgroupsPerQOS" and
"EnforceNodeAllocatable".
2024-05-24 20:20:21 +03:00
TommyStarK
3c57c206c0 kubelet/apis/config/validation: improve unit tests coverage
Signed-off-by: TommyStarK <thomasmilox@gmail.com>
2024-05-23 11:02:53 +02:00
Sascha Grunert
2aa9e76be1 Move pkg/kubelet/cri/remote to cri-client
Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2024-05-14 10:58:18 +02:00
Marek Siarkowicz
3ee8178768 Cleanup defer from SetFeatureGateDuringTest function call 2024-04-24 20:25:29 +02:00
Kubernetes Prow Robot
528cff12f6 Merge pull request #120969 from skitt/uber-go-mock
Switch from golang/mock to uber-go/mock
2024-04-17 23:59:24 -07:00
Maksym Pavlenko
be4b7176dc Fix Abs path validation on Windows (#124084)
* Windows: Consider slash-prefixed paths as absolute

filepath.IsAbs does not consider "/" or "\" as absolute paths, even
though files can be addressed as such. [1][2]

Currently, there are some unit tests that are failing on Windows due to
this reason.

[1] https://learn.microsoft.com/en-us/dotnet/standard/io/file-path-formats#traditional-dos-paths
[2] https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file#fully-qualified-vs-relative-paths

* Add test to verify IsAbs for windows

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>

* Fix abs path validation on windows

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>

* Skipp path clean check for podLogDir on windows

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>

* Implement IsPathClean to validate path

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>

* Add warn comment for IsAbs

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>

---------

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
Co-authored-by: Claudiu Belu <cbelu@cloudbasesolutions.com>
2024-04-10 10:13:59 -07:00
Stephen Kitt
6bf667af06 Switch from golang/mock to uber-go/mock
See https://github.com/golang/mock#gomock: golang/mock is no longer
maintained, and should be replaced by go.uber.org/mock.

This allows golang/mock to be dropped from the status and vendored
fields in unwanted-dependencies.json.

Signed-off-by: Stephen Kitt <skitt@redhat.com>
2024-03-07 09:12:16 +01:00
Kubernetes Prow Robot
3686ceb5b8 Merge pull request #122745 from kannon92/swap-no-swap-default
[KEP-2400] add no swap as the default option for swap
2024-03-05 16:32:40 -08:00
Kubernetes Prow Robot
5f4a20e65d Merge pull request #120718 from gjkim42/add-restartable-init-containers-to-pod-resources-api
Make PodResources API include restartable init containers
2024-03-05 13:44:54 -08:00
Kevin Hannon
6a4e19a4ec add no swap as the default option for swap 2024-03-05 16:10:42 -05:00
Kubernetes Prow Robot
dc3f5ec6cc Merge pull request #112957 from mxpv/log-dir
Allow changing pod log directory
2024-03-04 21:07:06 -08:00
Peter Hunt
cb39dfc9de Promote ImageMaximumGCAge to beta
and set to be on by default, adapting e2e tests for it

Signed-off-by: Peter Hunt <pehunt@redhat.com>
2024-02-27 15:11:45 -05:00
Kubernetes Prow Robot
98bd90fbe2 Merge pull request #114672 from pohly/log-text-split-streams
log: split streams also for text output
2024-02-26 01:44:58 -08:00
Maksym Pavlenko
8375163008 Add test to validate non empty pod log dir
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2024-02-21 12:56:13 -08:00
Gunju Kim
dd890b899f Make PodResources API include restartable init containers 2024-02-21 22:00:09 +09:00
Maksym Pavlenko
ff4f2907c5 Use non-default directory for pod logs and limit path to ASCII characters
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2024-02-16 09:57:17 -08:00
Maksym Pavlenko
19d9405a1c Update comments and error messages
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2024-02-16 09:56:01 -08:00
Maksym Pavlenko
d9e2487d0c Add PodLogsPath to kubelet config
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2024-02-16 09:55:59 -08:00
Harsha Narayana
ab8c784ee9 kubelet: enable configurable rotation duration and parallel rotate 2024-02-09 16:49:11 +05:30
Patrick Ohly
8f4c9c7605 k8s.io/component-base/logs: replace klog text implementation
This replaces the klog formatting and message routing with a simpler
implementation that uses less code. The main difference is that we skip the
entire unused message routing.

Instead, the same split output streams as for JSON gets implemented in the
io.Writer implementation that gets passed to the textlogger.
2024-01-17 13:50:03 +01:00
Kubernetes Prow Robot
12b01aff1b Merge pull request #121275 from haircommander/image-max-gc
KEP-4210: add support for ImageMaximumGCAge field
2023-10-25 21:29:10 +02:00
Peter Hunt
76e623098c kubelet config validation: add validation for image max gc age
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2023-10-20 12:23:31 -04:00
Peter Hunt
d992ea4b30 kubelet: add and use ImageMaximumGCAge in KubeletConfiguration
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2023-10-20 12:23:31 -04:00
Kubernetes Prow Robot
cfafffa611 Merge pull request #121019 from kl52752/rate-limiting
Move grpc rate limiter from podresource folder
2023-10-19 08:15:26 +02:00
Katarzyna Lach
122ff5a212 Move grpc rate limitter from podresource folder
Rate limitter.go file is a generic file implementing
grpc Limiter interface. This file can be reuse by other gRPC
API not only by podresource.

Change-Id: I905a46b5b605fbb175eb9ad6c15019ffdc7f2563
2023-10-09 07:22:23 +00:00
Francesco Romani
2ea47038b9 podresources: e2e: force eager connection
Add and use more facilities to the *internal* podresources client.
Checking e2e test runs, we have quite some
```
rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial unix /var/lib/kubelet/pod-resources/kubelet.sock: connect: connection refused": rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing: dial unix /var/lib/kubelet/pod-resources/kubelet.sock: connect: connection refused"
```

This is likely caused by kubelet restarts, which we do plenty in e2e tests,
combined with the fact gRPC does lazy connection AND we don't really
check the errors in client code - we just bubble them up.

While it's arguably bad we don't check properly error codes, it's also
true that in the main case, e2e tests, the functions should just never
fail besides few well known cases, we're connecting over a
super-reliable unix domain socket after all.

So, we centralize the fix adding a function (alongside with minor
cleanups) which wants to trigger and ensure the connection happens,
localizing the changes just here. The main advantage is this approach
is opt-in, composable, and doesn't leak gRPC details into the client
code.

Signed-off-by: Francesco Romani <fromani@redhat.com>
2023-09-07 08:24:49 +02:00
ithrael
e187368242 fix(test): fix TestGetPodResourcesV1 comparison logic in tests 2023-08-30 10:39:58 +08:00
ithrael
9a24dd2c27 fix(test): fix error comparison in GetPodResourcesV1 test 2023-08-28 18:55:12 +08:00
ithrael
d680bc540b fix(test): fix error handling condition in test 2023-08-27 21:11:39 +08:00
Kubernetes Prow Robot
ff90c1cc73 Merge pull request #119374 from danwinship/kep-3178-ga
move KEP-3178 IPTablesOwnershipCleanup to GA
2023-07-17 15:53:47 -07:00
Dan Winship
f1e7386fbc Deprecate now-unused kubelet iptables flags 2023-07-17 16:51:47 -04:00
Kubernetes Prow Robot
92856db662 Merge pull request #118973 from ffromani/kubelet-podresources-getallocatable-ga
node: podresources: getallocatable: move to GA
2023-07-17 13:47:33 -07:00
Jordan Liggitt
6c0ea702d4 Conditionally serialize flushFrequency as int 2023-07-16 08:37:37 -04:00
cyclinder
c550c17f7f accept int or string flush frequency 2023-07-13 14:33:33 +08:00