Skip to content

Porridge rox 33305 prevent gc#181

Draft
porridge wants to merge 2 commits intomasterfrom
porridge-rox-33305-prevent-gc
Draft

Porridge rox 33305 prevent gc#181
porridge wants to merge 2 commits intomasterfrom
porridge-rox-33305-prevent-gc

Conversation

@porridge
Copy link
Copy Markdown
Collaborator

No description provided.

porridge and others added 2 commits March 26, 2026 12:10
After each successful CRI PullImage, use the containerd native client
API to set io.cri-containerd.pinned=pinned on the image. This tells
kubelet's image GC to skip the image.

The CRI API doesn't support setting image labels, so we connect to
containerd directly (same socket) using the containerd client library
in the k8s.io namespace. The pinning happens immediately after each
successful pull, before GC has a chance to evict the image.

This is a proof-of-concept to test if pinning at pull time (via the
containerd API) works better than post-hoc pinning via ctr CLI, which
has known bugs (containerd#9328, #10270).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants