The CRI proxy called GetContainerEvents synchronously, which blocked in
the upstream receive loop and prevented kubelet from receiving
container lifecycle events. With AllAlpha enabled, that breaks the
EventedPLEG path and leaves the restart and image-pull retry tests
dependent on delayed fallback relists.
Run the upstream event stream in a goroutine, tie it to the
downstream stream context, and propagate non-cancellation errors
after forwarding completes. Also restore the image-volume test to
look for the kubelet log message emitted when Image.Image is empty.
Add server-side streaming RPCs to bypass the gRPC 16MB message size
limit on nodes with many containers/pods. This implements KEP-5825.
New RuntimeService streaming RPCs:
- StreamPodSandboxes
- StreamContainers
- StreamContainerStats
- StreamPodSandboxStats
- StreamPodSandboxMetrics
New ImageService streaming RPC:
- StreamImages
Each streaming RPC accepts the same filter as its unary counterpart
and streams results one item at a time.
Feature gate: CRIListStreaming
KEP: https://kep.k8s.io/5825🤖 Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Ayato Tokubi <atokubi@redhat.com>
add example of using CRI proxy
fix: Invalid function call
fix: Optimize getPodImagePullDuration
fix: Return error if the CRI Proxy is undefined
chore: add a document