Skip to content

[pull] main from containerd:main#56

Open
pull[bot] wants to merge 5593 commits intofahedouch:mainfrom
containerd:main
Open

[pull] main from containerd:main#56
pull[bot] wants to merge 5593 commits intofahedouch:mainfrom
containerd:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Aug 2, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

MikeZappa87 and others added 30 commits February 20, 2026 12:00
Signed-off-by: Michael Zappa <michael.zappa@gmail.com>
Remove image service dependency from podsandbox controller
When users configure a snapshotter in the runtime config (e.g.,
`plugins."io.containerd.cri.v1.runtime".containerd.runtimes.kata.snapshotter`),
the CRI image service was not aware of this configuration. This caused
images to be pulled with the default snapshotter instead of the
runtime-specific one, because the image service's runtimePlatforms map
was not populated with these runtime-to-snapshotter mappings.

Let's make sure that during the CRI plugin init, we iterate over all the
configured runtimes, and propagate any snapshotter configuration to the
image service.

The issue was found while working on #12835.

Signed-off-by: Fabiano Fidêncio <ffidencio@nvidia.com>
Make linter for release branches happy
…pecific-snapshotters-to-image-service

cri: propagate runtime-specific snapshotters to image service
fix: propagate `context deadline exceeded` error properly
This is a follow-up to PR #12732.

As noted by @TheColorman, while the previous PR successfully resolved absolute symlinks pointing outside the mount root for /etc/passwd during user lookups, the same logic was missing for group lookups. This caused `openat etc/group: path escapes from parent` errors when /etc/group was also an absolute symlink (e.g., in NixOS environments).

This patch updates GIDFromFS, getSupplementalGroupsFromFS, and WithAppendAdditionalGroups to use the openUserFile helper, ensuring absolute symlinks are correctly re-anchored across all OCI user/group resolution paths. Includes unit test for validation.

Fixes #12683

Signed-off-by: Paulo Oliveira <paulo.hco47@gmail.com>
Bumps [actions/stale](https://github.com/actions/stale) from 10.1.1 to 10.2.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](actions/stale@9971854...b5d41d4)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 10.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…tters

Remote/proxy snapshotters like nydus need per-layer annotations on each
snapshot (cri.image-ref, cri.layer-digest, cri.manifest-digest,
cri.image-layers) so they can lazily fetch content inside the guest VM.
During a normal PullImage, these annotations are set by
AppendInfoHandlerWrapper and flow through the core/unpack.Unpacker to
each layer's Prepare/Commit call.

However, when an image is already present for one snapshotter (e.g.,
overlayfs) and needs to be used with a different one (e.g., nydus for
Kata), no pull occurs.  The image must be unpacked into the target
snapshotter with the correct per-layer labels.

Replace the image.Unpack() fallback in customopts.WithNewSnapshot with
unpackImage, which leverages the existing core/unpack.Unpacker and wraps
the image handler with AppendInfoHandlerWrapper when snapshot annotations
are enabled (!DisableSnapshotAnnotations).  This reuses the same unpack
machinery as PullImage, including retry handling, parallel layer
support, and deduplication.

Signed-off-by: Fabiano Fidêncio <ffidencio@nvidia.com>
api: regenerate and re-vendor protos
…unpacked-for-the-target-snapshotter

cri: unpack images with per-layer labels for runtime-specific
…ctions/stale-10.2.0

build(deps): bump actions/stale from 10.1.1 to 10.2.0
Use new filtered cgroups stats API
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.3 to 4.32.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@9e907b5...89a39a4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…ead of values

The loop `for flag := range unprivilegedFlags` iterates over slice
indices (0,1,2,3,4,5,6) rather than the actual flag values (MS_RDONLY,
MS_NODEV, etc). This was a porting error from moby/moby where the data
structure was a map (where `for k := range m` yields keys/values).

As a result, MS_NOEXEC, MS_NOATIME, MS_RELATIME, and MS_NODIRATIME are
never detected or preserved. In user namespaces, this causes bind-mount
remounts to fail with EPERM when any of these flags are locked on the
parent mount, because the kernel requires all CL_UNPRIVILEGED locked
flags to be preserved during remount.

MS_RDONLY (0x1), MS_NOSUID (0x2), and MS_NODEV (0x4) happened to work
by coincidence because their values equal low index numbers.

Fix by using `for _, flag := range` to iterate over values.

Signed-off-by: Luke Hinds <luke@stacklok.com>
Mounts a tmpfs with MS_NOEXEC, MS_NOATIME, and MS_NODIRATIME and
verifies that getUnprivilegedMountFlags detects all of them. These
three flags were the ones missed by the range-over-indices bug.

Also verifies that flags not present on the mount (MS_NOSUID,
MS_NODEV, MS_RDONLY) are not falsely reported.

Signed-off-by: Luke Hinds <luke@stacklok.com>
core/mount: fix getUnprivilegedMountFlags iterating over indices instead of values
ci: fix critools version used in windows tests
Signed-off-by: ningmingxiao <ning.mingxiao@zte.com.cn>
ci: modprobe xt_comment on almalinux
…ithub/codeql-action-4.32.4

build(deps): bump github/codeql-action from 4.32.3 to 4.32.4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.32.4 to 4.32.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@89a39a4...c793b71)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.32.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7.0.0 to 8.0.0.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](actions/download-artifact@37930b1...70fc10c)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Shachar Tal <stal@paloaltonetworks.com>
…ctions/download-artifact-8.0.0

build(deps): bump actions/download-artifact from 7.0.0 to 8.0.0
Signed-off-by: Derek McGowan <derek@mcg.dev>
Signed-off-by: Derek McGowan <derek@mcg.dev>
Bumps [crazy-max/ghaction-github-runtime](https://github.com/crazy-max/ghaction-github-runtime) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/crazy-max/ghaction-github-runtime/releases)
- [Commits](crazy-max/ghaction-github-runtime@3cb05d8...04d248b)

---
updated-dependencies:
- dependency-name: crazy-max/ghaction-github-runtime
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
aadhar-agarwal and others added 30 commits March 31, 2026 20:21
Signed-off-by: Aadhar Agarwal <aadagarwal@microsoft.com>
This change updates the Go version from 1.25.8 to 1.26.0 across the
repository, including CI configurations, build scripts, and development
environments.

It also fixes two linter issues discovered after upgrading the Go version:
- core/snapshots/storage/bolt.go: incorrect printf format for uint64
- plugins/transfer/plugin.go: incorrect printf format for int and unused variable

The golangci-lint version in script/setup/install-dev-tools is also updated to v2.9.0
to match CI.

Signed-off-by: Sergey Kanzhelev <S.Kanzhelev@live.com>
…zure/CLI-3.0.0

build(deps): bump azure/CLI from 2.2.0 to 3.0.0
tracing: add option to inject trace ID into logrus fields
core/remotes: MakeRefKey: update godoc and change Warn to Debug logs
Update crun version to 1.27 and enable in mount options test
…th-goverity

Add dmverity support to the erofs snapshotter using go-dmverity
…ctions/attest-build-provenance-4.1.0

build(deps): bump actions/attest-build-provenance from 3.2.0 to 4.1.0
…ctions/upload-artifact-7.0.0

build(deps): bump actions/upload-artifact from 6.0.0 to 7.0.0
In order to support `os.features`.

Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
If no snapshotter is specified and `os.features` contains "erofs",
unpacking should use the EROFS snapshotter and differ.

This enhances the usability of native EROFS container images.

Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Just use apitypes.OCIPlatformFromProto().

Suggested-by: Jin Dong <djdongjin95@gmail.com>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
…e` is set

If no snapshotter is specified, container run selects the default
snapshotter.

However, if `os.features` is set, we should always call
`checkSnapshotterSupport()`.  This ensures containerd clients
report a clear error:

```
ctr: snapshotter overlayfs does not support platform
{amd64 linux  [erofs] } for image sha256:[]
```

instead of the confusing layer extraction error:

```
ctr: apply layer error for "": failed to extract layer sha256:[]:
failed to get stream processor for application/vnd.erofs.layer.v1:
no processor for media-type
```

Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
…b.com/pelletier/go-toml/v2-2.3.0

build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.4 to 2.3.0
…ithub/codeql-action-4.35.1

build(deps): bump github/codeql-action from 4.33.0 to 4.35.1
…ng/pkg/httpstream

Signed-off-by: Sergey Kanzhelev <S.Kanzhelev@live.com>
Signed-off-by: Sergey Kanzhelev <S.Kanzhelev@live.com>
Add `os.features` support for EROFS native container images
fix: handle nil spec for hostNetwork containers
The test image ghcr.io/containerd/volume-copy-up:2.1 does not include
a manifest for s390x, causing the test to fail with:
"no manifest found for platform: not found".

Signed-off-by: Ricardo Branco <rbranco@suse.de>
Skip TestExportAndImportMultiLayer on s390x
Signed-off-by: ningmingxiao <ning.mingxiao@zte.com.cn>
klog has a long-standing bug where setting -logtostderr=true causes the
-stderrthreshold flag to be silently ignored. All log messages are sent
to stderr regardless of their severity.

klog v2.140.0 introduced two new flags that allow callers to opt into the
correct behavior:

  -legacy_stderr_threshold_behavior=false
  -stderrthreshold=INFO

Set them in the CRI plugin's setGLogLevel() function, right after
klog.InitFlags() and before any other flag configuration.

Reference: kubernetes/klog#212
Signed-off-by: Pierluigi Lenoci <pierluigi.lenoci@gmail.com>
…upport

Signed-off-by: Sergey Kanzhelev <S.Kanzhelev@live.com>
pause image 3.10.1 -> 3.10.2 for add Windows Server 2025 (ltsc2025) s…
script/setup: update runc binary to v1.4.2
Honor stderrthreshold when logtostderr is enabled
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.