Commit Graph

1715 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
5fd9cefd95 Merge pull request #134995 from yongruilin/flagz-kk-structure
[KEP-4828] Flagz versioned structured response
2025-11-04 19:02:04 -08:00
yongruilin
2422bc0bb8 feat: Implement structured /flagz endpoint 2025-11-04 19:45:30 +00:00
Lukasz Szaszkiewicz
257ff6edcd kubelet/app/server_bootstrap_test: fix Test_buildClientCertificateManager 2025-11-04 09:59:11 +01:00
Kubernetes Prow Robot
4e8499740e Merge pull request #134985 from swatisehgal/node-cm-ctx-logging-migration
node: cm: migrate container manager to contextual logging
2025-11-03 09:34:12 -08:00
Kubernetes Prow Robot
f66d1a9418 Merge pull request #133779 from carlory/kubelet-cleanup-pod-infra-container-image
Remove deprecated pod-infra-container-image flag
2025-10-31 10:10:07 -07:00
Swati Sehgal
05f67d834a node: cm: migrate container manager to contextual logging
This commit migrates the container manager package to use
contextual logging.

This follows the contextual logging migration pattern where:
- Logger is passed from the boundary down to implementations
- klog.TODO() is used at call sites where context is not yet available
- Functions with context.Context extract logger via klog.FromContext(ctx)
- klog.InfoS/ErrorS/V().InfoS calls are replaced with logger.Info/Error/V().Info
- Sub-managers receive proper logger context from their callers

Some call sites still use klog.TODO() as placeholders, with TODO
comments indicating these will be replaced with proper contextual loggers
as the migration continues upward through the call stack.

Test/fake implementations use klog.Background() which is the appropriate
choice for test code where no real context is available.

Mock file updates (pkg/kubelet/cm/testing/mocks.go) were done manually
due to mockery tool incompatibility with Go 1.25 and will be committed
separately with an explanation.

Key changes:

1. PodContainerManager and ContainerManager interface updates:
   - PodContainerManager.EnsureExists: add logger parameter
   - PodContainerManager.Destroy: add logger parameter
   - PodContainerManager.ReduceCPULimits: add logger parameter
   - PodContainerManager.SetPodCgroupConfig: add logger parameter
   - ContainerManager.UpdateQOSCgroups: add logger parameter
   - Update all implementations (Linux, Windows, stub, noop, fake)

2. Helper function updates:
   - GetKubeletContainer: add logger parameter (Linux and unsupported platforms)
   - Update cmd/kubelet/app/server.go to pass logger to GetKubeletContainer
   - Comment out type assertion in helpers.go due to signature change

3. Cgroup manager contextual logging:
   - CgroupManager interface methods updated to accept logger:
     * Destroy: add logger parameter
     * ReduceCPULimits: add logger parameter
     * SetCgroupConfig: add logger parameter
   - Update cgroupCommon and unsupportedCgroupManager implementations
   - Migrate klog.InfoS/V().InfoS calls to logger.Info/V().Info

4. Container manager implementation updates:
   - Extract logger from context in NewContainerManager() and Start()
   - Pass logger to sub-managers (deviceManager, topologyManager)
   - Update DRA manager initialization to use logger from context
   - Migrate klog.InfoS/ErrorS to logger.Info/Error throughout

5. Call sites updated with TODO comments:
   - pkg/kubelet/kubelet.go: UpdateQOSCgroups, EnsureExists
   - pkg/kubelet/kubelet_pods.go: UpdateQOSCgroups, ReduceCPULimits, Destroy
   - pkg/kubelet/kuberuntime/kuberuntime_manager.go: SetPodCgroupConfig
   - pkg/kubelet/kuberuntime/kuberuntime_manager_test.go: test expectations

Most call sites currently use klog.TODO() as placeholders, with TODO
comments indicating these will be replaced with proper contextual loggers
as the migration continues upward through the call stack.

Test/fake implementations use klog.Background() which is the appropriate
choice for test code where no real context is available.

Mock file updates (pkg/kubelet/cm/testing/mocks.go) were done manually
due to mockery tool incompatibility with Go 1.25 and will be committed
separately with an explanation.

Signed-off-by: Swati Sehgal <swsehgal@redhat.com>
2025-10-30 18:34:03 +00:00
Kubernetes Prow Robot
59616d50fd Merge pull request #134691 from SergeyKanzhelev/watchdogIsGA
Lock SystemdWatchdog feature gate
2025-10-27 03:43:37 -07:00
Francesco Romani
fd5b2efa76 node: cpumanager: migrate to contextual logging
migrate the cpumanager code to contextual logging

design musings:
- golang contexts "[...] carries deadlines, cancellation signals, and
  other request-scoped values across API boundaries and between
  processes." (see: https://pkg.go.dev/context#pkg-overview).
  Thus, it generally makes sense to add contexts to most of the APIs
  and functions  as the resource management is done in the admission flow, when
  ultimately we process a request and we have time bounds;
- however, receiving a context from the outside and depending on it
  kind also conflicts with the goal of having uniform logging and "
  - attach key/value pairs that get included in all log messages
  - add names that describe which component or operation triggered a log messages"
  (see:
https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging#summary)
  Some of this conflict is due to the transitional nature of the PRs
  which we do when updating the codelet codebase. We can envision a
  final state on which the top level caller adds identifying information
  like pod UID and pod namespace/name pair; but up until all the calling
  chain is updated and wired, the results are gonna be inconsistent.
- continuing from the point above, the most realistic transition plan
  for the kubelet is outlined in
  https://github.com/kubernetes/kubernetes/issues/130069 .
  Since we do want to move in parallel and migrate on a
  subsystem-by-subsystem basis, each subsystem will be in charge to add
  the data they want to their contexts. I think this is the only
  reasonnable way forward, and the cost will be overhead and redundancy.
  We should do sweeping changes to uniform the flows once we completed
  the full transition to ensure uniformity.
- there are some well known packages which want to operate by design
  only in in-memory data structure, which arguably can't block.
  Shoehorning a context feels not great. Instead, we intentionally pass
  only the logger, which still is the core idea of contextual logging
  (see:
https://github.com/kubernetes/kubernetes/pull/125912#discussion_r1935919144)
  examples are the topology subpackage and the cpu_assignment logic
  (takeByTopology and friends)

Signed-off-by: Francesco Romani <fromani@redhat.com>
2025-10-27 08:38:58 +01:00
Markus Lehtonen
49e4fe9d2b kubelet: fix kubeletconfig.cgroupDriver in configz
Reflect the correct cgroupDriver setting in the configz enpoint in case
the cgroup driver setting is received from the CRI. Moves the
initialization of the configz handler to a slightly later phase where
the CRI has been queried.
2025-10-21 11:23:22 +03:00
Sergey Kanzhelev
9864c29861 Lock SystemdWatchdog feature gate 2025-10-17 17:50:41 +00:00
carlory
dc686f240b Remove deprecated pod-infra-container-image flag 2025-10-11 10:49:53 +08:00
Kubernetes Prow Robot
b40d570248 Merge pull request #133988 from bart0sh/PR199-migrate-kubelet-certificate-to-contextual-logging
migrate kubelet/certificate to contextual logging
2025-09-16 02:24:12 -07:00
Kubernetes Prow Robot
8826364a57 Merge pull request #131483 from tallclair/kubeletconfig
Clean up pkg/kubelet/config
2025-09-15 15:54:07 -07:00
Ed Bartosh
bf0429ed07 migrate kubelet/certificate to contextual logging 2025-09-10 12:33:33 +03:00
Ed Bartosh
b276c96ef8 Migrate kubelet/server to contextual logging 2025-09-09 12:49:42 +03:00
Kubernetes Prow Robot
1166dcb0ef Merge pull request #130154 from zhifei92/watchdog-migrate-structured-logging
chore(kubelet): migrate watchdog to contextual logging
2025-09-05 14:37:26 -07:00
zhangzhifei16
f1b28b0d1f chore(kubelet): migrate watchdog to contextual logging
fix: fix failed typecheck

fix unit test
2025-09-05 21:40:44 +08:00
Kubernetes Prow Robot
b86ff94014 Merge pull request #132960 from benluddy/webhook-client-content-type
Configure JSON content type for generic webhook RESTClient.
2025-09-02 08:01:15 -07:00
Kubernetes Prow Robot
23acc94870 Merge pull request #129986 from djboris9/patch-1
fix(kubelet-windows): Typo in structured log user display name fixed
2025-08-28 00:29:09 -07:00
Ben Luddy
0b16f0ae3c Test that auth{z,n} hook clients honor Kubelet's request encoding.
Kubelets can make a high volume of SubjectAccessReview and TokenReview requests via authn and authz
webhooks. Its default encoding, Protobuf, mitigates the serialization cost of these requests when
compared to client-go's default encoding, JSON. This test provides some insurance against changes to
webhook client construction that might cause the webhook clients to fail to respect Kubelet's
configured content type.
2025-08-14 13:26:49 -04:00
Tim Allclair
bd900111a8 Move ContainerRuntimeOptions flags to cmd/kubelet/app/options 2025-08-06 12:12:08 -07:00
Tim Allclair
ff6f4e1f63 Move kubelet config code to kubeletconfig 2025-08-06 12:08:19 -07:00
Peter Hunt
5dc2030c02 4033: GA KubeletCgroupDriverFromCRI feature gate
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2025-07-24 12:37:14 -04:00
Peter Hunt
83a0d0c660 kubelet: add metric for version CRI implementation will lose support
Signed-off-by: Peter Hunt <pehunt@redhat.com>
2025-07-24 11:42:59 -04:00
Sergey Kanzhelev
6e77bff18b pod sandbox image is not being used by kubelet any longer 2025-07-21 18:51:07 +00:00
Kubernetes Prow Robot
ba35c0613d Merge pull request #132427 from soma00333/kuberuntime-contextual-logging-1
feat(kubelet): migrate kuberuntime to contextual logging
2025-07-21 05:50:36 -07:00
Kubernetes Prow Robot
c44bf18b9b Merge pull request #130713 from ArkaSaha30/bump-pause-version
dependency: update pause version to registry.k8s.io/pause:3.10.1
2025-07-20 20:16:26 -07:00
Boris Djurdjevic
904ba748f1 fix(kubelet-windows): Typo in structured log user display name 2025-07-20 19:34:29 +02:00
soma00333
ab839c93ff feat(kubelet): migrate kuberuntime to contextual logging 2025-07-20 09:47:50 +09:00
soma00333
7ddb042626 feat(cmd/kubelet): support structured and contextual logging 2025-07-19 17:10:37 +09:00
Ed Bartosh
75ccd69bab migrate pkg/kubelet/kubeletconfig to contextual logging 2025-07-17 10:16:03 +03:00
Ed Bartosh
7dad9e2af6 migrate pkg/kubelet/apis to contextual logging 2025-07-17 10:15:58 +03:00
ArkaSaha30
621482d68b update pause version to 3.10.1
This commit will update the pause version to 3.10.1 as per thread: https://kubernetes.slack.com/archives/CJH2GBF7Y/p1741674313893029

Signed-off-by: ArkaSaha30 <arkasaha30@gmail.com>
2025-07-09 16:38:14 +05:30
David Ashpole
5a20c38da6 remove usage of KubeletTracing featuregate from kubelet 2025-06-30 12:30:47 +00:00
Kubernetes Prow Robot
c1afec6a0b Merge pull request #132357 from dims/drop-usage-of-forked-copies-of-goyaml.v2-and-goyaml.v3
Drop usage of forked copies of goyaml.v2 and goyaml.v3
2025-06-25 09:48:29 -07:00
Davanum Srinivas
c5b4b133ce switch to latest sigs.k8s.io/yaml v1.5.0 (run update-gofmt.sh as well)
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-06-25 11:42:12 -04:00
Kubernetes Prow Robot
60f0ad4615 Merge pull request #122384 from carlory/remove-kubelet-flag-register-schedulable
kubelet: remove --register-schedulable flag
2025-06-18 05:26:54 -07:00
Davanum Srinivas
3827d3bc4f Drop usage of forked copies of goyaml.v2 and goyaml.v3
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-06-17 11:00:27 -04:00
zhangzhifei16
0a86ca4061 Add healthChecker to the kubeDeps 2025-06-10 21:14:17 +08:00
zhangzhifei16
4a7e68a355 fix: Fix the issue where kubelet's slow startup causes it to be mistakenly killed by the watchdog.
Add a lock for checkers and improve the unit test.

format code.

fix unit test
2025-06-09 21:27:57 +08:00
Kubernetes Prow Robot
513e188697 Merge pull request #129460 from sohankunkerkar/add-test
kubelet: add coverage for identical kubelet config and drop-in config content
2025-06-06 12:00:44 -07:00
Kubernetes Prow Robot
cd3b5c5766 Merge pull request #131658 from dims/allow-specifying-a-directory-for-image-credential-providers-json-configuration
Allow specifying a directory for image credential providers json configuration
2025-05-29 07:46:20 -07:00
Davanum Srinivas
be6807e6a5 Allow specifying a directory for image credential providers json/yaml configuration
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2025-05-29 09:42:26 -04:00
Kubernetes Prow Robot
2125fd6a94 Merge pull request #130161 from carlory/kep-2395-kubelet-cleanup
kubelet: clean up cloud provider code because cloud provider only supports empty or external and cloud is nil
2025-05-17 13:05:13 -07:00
carlory
c0b2f341a7 clean up cloud provider code because cloud provider only supports empty or external and cloud is nil
Signed-off-by: carlory <baofa.fan@daocloud.io>
2025-04-25 10:19:05 +08:00
Ajay Sundar Karuppasamy
a09cb22e4d disable in-place vertical pod scaling for non-restartable swappable containers 2025-03-20 20:43:18 +00:00
Francesco Romani
3c7ed00e22 node: kep-2625: cpu manager policy options GA
Move the support for CPUManager Policy Options to GA

Signed-off-by: Francesco Romani <fromani@redhat.com>
2025-03-20 08:31:32 +01:00
zhangzhifei16
2db729cfa4 Add flatz to kubelet auth.
Fix: Move flagz to InstallDebuggingHandlers.

Move flagz  to the lower switch statemen

Fix linter

Drop the function parameter for the read-only server.
2025-03-13 10:11:59 +08:00
Kubernetes Prow Robot
1b4c3483ce Merge pull request #127577 from vaibhav2107/eviction-hard
Added the MergeDefaultEvictionSettings Kubelet Config
2025-02-26 12:10:30 -08:00
vaibhav2107
a97c6a7045 Added the mergeDefaultEvictionSettings Kubelet Config 2025-02-24 23:06:06 +05:30