Commit Graph

71 Commits

Author SHA1 Message Date
Kubernetes Prow Robot
7143856f17 Merge pull request #123756 from saschagrunert/cri-approvers
Sync `cri-api` approvers with kubelet `cri` package
2024-05-01 07:48:03 -07:00
Kubernetes Prow Robot
3192f7489d Merge pull request #123796 from saschagrunert/kube-features-remote-runtime
Decouple `kubelet/cri/remote` package from `pkg/features`
2024-04-29 05:15:41 -07:00
Kubernetes Prow Robot
da890f071b Merge pull request #123463 from k82cn/cri_grpc_rs
grpc: set localhost Authority to unix client calls
2024-04-29 05:15:32 -07:00
Sascha Grunert
7b14e0e382 Decouple kubelet/cri/remote package from pkg/features
Importing the `k8s.io/kubernetes/pkg/features` package in the remote
runtime implementation makes it harder to separate the functionalities
at some later point in time.

We now decouple them by checking if the feature is enabled directly in
the kubelet service creation path.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2024-04-29 08:37:02 +02:00
Kubernetes Prow Robot
3d49956fde Merge pull request #123795 from saschagrunert/metrics-remote-runtime
Decouple `kubelet/cri/remote` package from `kubelet/metrics`
2024-04-26 18:31:48 -07:00
Marek Siarkowicz
3ee8178768 Cleanup defer from SetFeatureGateDuringTest function call 2024-04-24 20:25:29 +02:00
Marek Siarkowicz
3e5b03eb43 Upgrade etcd libraries to v3.5.13
Add otelgrpc.WithMessageEvents(otelgrpc.ReceivedEvents, otelgrpc.SentEvents) to tracing options due to https://github.com/open-telemetry/opentelemetry-go-contrib/pull/3964
2024-04-24 09:56:39 +02:00
Sascha Grunert
51199deaa0 Decouple kubelet/cri/remote package from kubelet/metrics
Importing the `k8s.io/kubernetes/pkg/kubelet/metrics` package in the
remote runtime implementation makes it harder to separate the
functionalities at some later point in time. We now decouple both
packages by extending the CRI API services to allow a callback on
`GetContainerEvents`. This callback can be used to do additional work if
the connection got established, because `GetContainerEvents` will go
into blocking mode after that.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2024-03-07 11:46:06 +01:00
Sascha Grunert
38c5497e48 Sync cri-api approvers with kubelet cri package
We now move the SIG Node (and CRI) approvers to be able to approve
`pkg/kubelet/cri/remote` PRs.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2024-03-06 14:55:23 +01:00
Klaus Ma
b8074c9b67 grpc: set localhost Authority to unix client calls
Signed-off-by: Klaus Ma <klausm@nvidia.com>
2024-02-23 14:51:39 +08:00
Kevin Hannon
8ae0d390d7 add container filesystem to CRI api
Co-authored-by: Mike Brown <brownwm@us.ibm.com>
2023-10-23 15:04:30 -04:00
Harshal Patil
2e174a029f Add timeout to listContainerStats context
Signed-off-by: Harshal Patil <harpatil@redhat.com>
2023-08-30 10:49:44 -04:00
Markus Lehtonen
d2d5e2e27d Add CRI fake runtimes for RuntimeConfig rpc
Also update the CRI RuntimeService inteface to include the new
RuntimeConfig rpc.
2023-07-17 12:27:04 -04:00
Davanum Srinivas
f7239e4095 Better back off delays and connection timeout to talk to containerd
Set up params similar to what we do in cadvisor:
e9068e3273/container/containerd/client.go (L59-L61)

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-06-25 16:25:28 -04:00
Davanum Srinivas
c98e72841b Add a connection backoff to talk to CRI impls
We can add backoff for connection like we do in cadvisor:
https://github.com/google/cadvisor/blob/master/container/containerd/client.go#L76-L80

for now, don't tune it, just use the default:
https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2023-06-20 21:32:50 -04:00
Sascha Grunert
4cdfe600e0 Fix image pull error type ErrRegistryUnavailable
The current error comparison `imagePullResult.err ==
ErrRegistryUnavailable` will never work with any remote runtime, because
we produce gRPC errors which wrap a code and a description, like:

```
rpc error: code = Unknown desc = This is the error description
```

To be able to check custom error types from `pkg/kubelet/images/types.go`,
we now strip the code if the status is unknown on image pull.

Beside that, we use a string comparison to check against
`ErrRegistryUnavailable.Error()`, because validating them via the
`errors` package is not yet supported by grpc-go:
https://github.com/grpc/grpc-go/issues/3616

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2023-04-26 11:02:47 +02:00
Harshal Patil
412b4b3329 Add connection related metrics to EventedPLEG
Signed-off-by: Harshal Patil <harpatil@redhat.com>
2023-03-01 11:35:27 -05:00
Sascha Grunert
e89547d308 Check for all errors in CRI connection validation
We only have one CRI API (v1) to validate during the initial connection
of the kubelet with the container runtime. Therefore we can now verify
all kind of GRPC related issues.

Fixes: https://github.com/kubernetes/kubernetes/issues/114956

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2023-01-17 09:24:31 +01:00
Daniel Ye
dcc7c2f660 Add fake runtimes and CRI changes for KEP-2371
Added new gRPC call 'ListPodSanboxMetrics' which would return additional
container stats currently supported by cAdvisor, but outside the scope
of /stats/summary api. Added new types to support metric exporting of
prometheus, including Metric and other subfields. Added fake runtime
changes associated with the CRI changes.
2022-11-08 14:47:08 -05:00
Harshal Patil
86284d42f8 Add support for Evented PLEG
Signed-off-by: Harshal Patil <harpatil@redhat.com>
Co-authored-by: Swarup Ghosh <swghosh@redhat.com>
2022-11-08 20:06:16 +05:30
David Ashpole
64af1adace Second attempt: Plumb context to Kubelet CRI calls (#113591)
* plumb context from CRI calls through kubelet

* clean up extra timeouts

* try fixing incorrectly cancelled context
2022-11-05 06:02:13 -07:00
Sascha Grunert
f9707064cf Remove CRI v1alpha2
After the removal of dockershim we can finally also drop support for CRI
v1alpha2.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2022-11-03 09:13:43 +01:00
Antonio Ojea
9c2b333925 Revert "plumb context from CRI calls through kubelet"
This reverts commit f43b4f1b95.
2022-11-02 13:37:23 +00:00
David Ashpole
f43b4f1b95 plumb context from CRI calls through kubelet 2022-10-28 02:55:28 +00:00
Kubernetes Prow Robot
98233be715 Merge pull request #112709 from swagatbora90/kubelet-tracing
Support otel tracing in cri remote image service
2022-10-04 14:12:00 -07:00
Swagat Bora
caa83c25ae Support otel tracing in cri remote image service
Signed-off-by: Swagat Bora <sbora@amazon.com>
2022-09-29 22:15:07 +00:00
astraw99
805be30745 Add validation for runtime endpoint 2022-09-28 10:33:35 +08:00
Vinay Kulkarni
007d93ad08 Handle UpdateContainerResources for Windows in v1alpha2 2022-08-02 15:31:00 -07:00
Vinay Kulkarni
0ef263c3b0 CRI changes to support implementation of in-place pod resize.
KEP: /enhancements/keps/sig-node/1287-in-place-update-pod-resources
2022-08-02 15:08:25 -07:00
Kubernetes Prow Robot
8f3b2813dc Merge pull request #111642 from harche/evented_pleg_cri_changes
Update CRI API to support Evented PLEG
2022-08-02 13:59:16 -07:00
Harshal Patil
668b2440c5 Update CRI API to support Evented PLEG
Signed-off-by: Harshal Patil <harpatil@redhat.com>
2022-08-03 00:01:13 +05:30
Sally O'Malley
9e4e0bb48a add runtime-service test with tracerProvider
Signed-off-by: Sally O'Malley <somalley@redhat.com>
2022-08-01 12:55:21 -04:00
Sally O'Malley
47e7d8034f kubelet tracing
Signed-off-by: Sally O'Malley <somalley@redhat.com>
Co-authored-by: David Ashpole <dashpole@google.com>
2022-08-01 12:55:02 -04:00
Kubernetes Prow Robot
631a5a849a Merge pull request #109778 from mythi/grpc-go-update
grpc: move to use grpc.WithTransportCredentials()
2022-07-26 12:45:09 -07:00
Adrian Reber
fc37a7a990 kubelet: wire checkpoint container support through
This adds the last pieces to wire through the container checkpoint
support in the kubelet.

Signed-off-by: Adrian Reber <areber@redhat.com>
2022-07-14 10:27:41 +00:00
Adrian Reber
1ac7d78296 kubelet: add CheckpointContainer in remote runtime
This is the first step to implement checkpointing and restoring of
container and containers starting from the lowest layer in the kubelet.

Signed-off-by: Adrian Reber <areber@redhat.com>
2022-07-14 10:27:40 +00:00
Claudiu Belu
93701ce0c1 cleanup: Removes duplicate utils code
The utils found in pkg/kubelet/cri/remote/utils are the same as the
ones in pkg/kubelet/utils, with the difference that the latter have
had a few improvements recently.

This commit removes the duplicated code.
2022-06-28 22:58:14 -07:00
21kyu
df168d5b5c Change reflect.Ptr to reflect.Pointer 2022-06-26 01:23:43 +09:00
Mikko Ylinen
2c8bfad910 grpc: move to use grpc.WithTransportCredentials()
v1.43.0 marked grpc.WithInsecure() deprecated so this commit moves to use
what is the recommended replacement:

grpc.WithTransportCredentials(insecure.NewCredentials())

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
2022-05-30 21:41:47 +03:00
Kubernetes Prow Robot
4bec6b34ef Merge pull request #107122 from songlh/fixing-5
fixing the panic in TestVersion
2022-05-05 16:28:41 -07:00
Sascha Grunert
effbcd3a0a Add support for CRI verbose fields
The remote runtime implementation now supports the `verbose` fields,
which are required for consumers like cri-tools to enable multi CRI
version support.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2022-02-10 17:12:26 +01:00
Jordan Liggitt
3a132bd206 Fix kubelet cri round trip test 2022-02-05 17:59:29 -05:00
yanghesong
4cab028a92 Remove dockershim comments in kubelet
Signed-off-by: yanghesong <hesong.yang@foxmail.com>
2022-01-20 16:15:29 +08:00
songlh
50840f5039 change to use require.NoError 2022-01-14 21:46:12 -05:00
songlh
e03a0bc105 fixing the panic in TestVersion 2021-12-18 19:20:15 -05:00
Davanum Srinivas
9405e9b55e Check in OWNERS modified by update-yamlfmt.sh
Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2021-12-09 21:31:26 -05:00
Sascha Grunert
a063a2ba3e Revert dockershim CRI v1 changes
We should not touch the dockershim ahead of removal and therefore
default to `v1alpha2` CRI instead of `v1`.

Partially reverts changes from https://github.com/kubernetes/kubernetes/pull/106501

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2021-12-03 18:37:11 +01:00
Elana Hashman
31c4273f66 Add test for memory equivalence
See https://github.com/kubernetes/kubernetes/pull/106006#issuecomment-971004230

Co-Authored-By: Jordan Liggitt <liggitt@google.com>
2021-11-17 11:07:09 -08:00
Sascha Grunert
de37b9d293 Make CRI v1 the default and allow a fallback to v1alpha2
This patch makes the CRI `v1` API the new project-wide default version.
To allow backwards compatibility, a fallback to `v1alpha2` has been added
as well. This fallback can either used by automatically determined by
the kubelet.

Signed-off-by: Sascha Grunert <sgrunert@redhat.com>
2021-11-17 11:05:05 -08:00
Stephen Augustus
481cf6fbe7 generated: Run hack/update-gofmt.sh
Signed-off-by: Stephen Augustus <foo@auggie.dev>
2021-08-24 15:47:49 -04:00