Commit Graph

16992 Commits

Author SHA1 Message Date
Maksym Pavlenko
82a47efe92 Support dmverity
Add a --dmverity flag to `ctr images build-erofs-cache`. When set, each cached
erofs blob is dm-verity formatted (the hash tree is appended in place) and a
.dmverity sidecar is written alongside it. This is required when the erofs
snapshotter runs with dmverity_mode=on, which rejects cache hits that lack a
sidecar; without it such layers would have to be formatted out-of-band.

Extract the differ's dm-verity formatting into a shared dmverity.FormatLayer so
the differ and the cache builder share one implementation; the differ's
formatDmverityLayer now delegates to it.

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-07-21 10:07:08 -07:00
Maksym Pavlenko
f52e748f16 ctr: add build-erofs-cache to populate the erofs layer cache
Add `ctr images build-erofs-cache <image> <cache_dir>`, which reads an
already-pulled image's layers from the content store, converts each into a
directly-mountable erofs blob, and writes them under
<cache_dir>/<algorithm>/<hex>.erofs keyed by the layer's diffID. This
populates the directory the erofs snapshotter's layer_content_cache reads
on pull; because the key is the source diffID, layers shared across images
converge on one blob. No converted image is produced.

Extract the per-layer uncompress + mkfs.erofs step out of LayerConvertFunc
into an exported ConvertLayerToErofs so the image converter and the cache
builder share a single conversion path.

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-07-21 09:43:41 -07:00
Maksym Pavlenko
728093bdca snapshots/erofs: source pre-converted layers from a content cache
Add a layer_content_cache option to the erofs snapshotter: a directory of
pre-converted, diffID-keyed erofs layer blobs (in production a read-only
mountpoint-s3/FUSE mount) that the snapshotter sources layers from on pull
instead of downloading and converting them per node.

On an image-layer extraction Prepare, if the layer's blob is present in the
cache the snapshotter stages it as a symlink, commits it as the target
chainID in the same transaction, and returns ErrAlreadyExists. This uses the
existing remote-snapshot protocol, so containerd skips both the layer
download and the tar->erofs conversion; no core changes are needed. Any miss
(cache disabled, no snapshot.ref/diff-id labels, blob absent, unreadable
cache) falls through to the normal path, so pulls keep working.

Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-07-21 09:43:41 -07:00
Maksym Pavlenko
c792ddd46d Merge pull request #13754 from dgdegraaf/fix-fsmount-selinux
fsmount: Fix selinux mount parameter parsing
2026-07-20 00:24:48 +00:00
Maksym Pavlenko
0ed30a42b9 Merge pull request #13810 from containerd/dependabot/github_actions/github/codeql-action/upload-sarif-4.37.0
build(deps): bump github/codeql-action/upload-sarif from 4.36.2 to 4.37.0
2026-07-19 06:06:54 +00:00
Maksym Pavlenko
956be807ee Merge pull request #13765 from containerd/dependabot/github_actions/docker/setup-buildx-action-4.2.0
build(deps): bump docker/setup-buildx-action from 4.1.0 to 4.2.0
2026-07-19 01:57:53 +00:00
Maksym Pavlenko
9a2d8419eb Merge pull request #13772 from containerd/dependabot/github_actions/docker/login-action-4.4.0
build(deps): bump docker/login-action from 4.2.0 to 4.4.0
2026-07-19 01:57:39 +00:00
Maksym Pavlenko
55306d97b3 Merge pull request #13807 from containerd/dependabot/go_modules/github.com/pelletier/go-toml/v2-2.4.3
build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.2 to 2.4.3
2026-07-19 01:53:20 +00:00
Maksym Pavlenko
ac180cff7b Merge pull request #13811 from containerd/dependabot/github_actions/actions/stale-10.4.0
build(deps): bump actions/stale from 10.3.0 to 10.4.0
2026-07-18 21:54:37 +00:00
Akihiro Suda
29edc6e8b7 Merge pull request #13741 from thaJeztah/rm_go_reportcard
README: remove Go Report Card badge
2026-07-18 06:29:46 +00:00
Maksym Pavlenko
820b8e7ec0 Merge pull request #13805 from AprilNEA/fix/overlay-mount-options-index-check
overlay: don't override a configured index mount option
2026-07-18 04:56:12 +00:00
dependabot[bot]
a4b1e9a44b build(deps): bump actions/stale from 10.3.0 to 10.4.0
Bumps [actions/stale](https://github.com/actions/stale) from 10.3.0 to 10.4.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](eb5cf3af3a...1e223db275)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-17 23:27:04 +00:00
dependabot[bot]
624c8e85bd build(deps): bump github/codeql-action/upload-sarif
Bumps [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) from 4.36.2 to 4.37.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](8aad20d150...99df26d4f1)

---
updated-dependencies:
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-17 23:26:20 +00:00
dependabot[bot]
10e0d68a94 build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.2 to 2.4.3
Bumps [github.com/pelletier/go-toml/v2](https://github.com/pelletier/go-toml) from 2.4.2 to 2.4.3.
- [Release notes](https://github.com/pelletier/go-toml/releases)
- [Commits](https://github.com/pelletier/go-toml/compare/v2.4.2...v2.4.3)

---
updated-dependencies:
- dependency-name: github.com/pelletier/go-toml/v2
  dependency-version: 2.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-17 23:23:22 +00:00
Daniel De Graaf
dd2bcfc643 fsmount: Fix selinux mount parameter parsing
Because selinux contexts can contain commas, context strings may be
quoted in the single-syscall mount API. This quoting is not permitted
when using the fsconfig API, so strip the quotes when preparing the
system call arguments.

Signed-off-by: Daniel De Graaf <dgdegra@uwe.nsa.gov>
2026-07-17 08:51:13 -04:00
AprilNEA
5e25f36e5e overlay: don't override a configured index mount option
NewSnapshotter auto-appends "index=off" unless the configured
mount_options already carry an index option — but the check used
hasOption(..., "index", false), which compares against the literal
string "index". No valid mount option ever equals "index" (it is
always valued, "index=on"/"index=off"), so the append happened
unconditionally whenever the kernel exposes the overlay index
parameter.

Mount options are last-wins in the kernel, so a user-configured
"index=on" was silently overridden. Worse, configuring
mount_options = ["index=on", "nfs_export=on"] (the documented way to
make overlay mounts NFS-exportable) produced
"index=on,nfs_export=on,index=off", which the kernel rejects with
EINVAL (nfs_export=on conflicts with an explicit index=off) — breaking
every snapshot mount including image unpack.

Make hasOption match the key of a "key[=value]" option so callers need
not care whether the option takes a value, and add a regression test.

Signed-off-by: AprilNEA <github@sku.moe>
2026-07-17 16:04:32 +08:00
Mike Brown
cb23630be7 Merge pull request #13800 from SaloniRathi/fix-test-error-messages
core/mount/manager: improve TestMkdirHandler failure messages
2026-07-17 05:05:24 +00:00
SaloniRathi
807fbc13dc core/mount/manager: improve TestMkdirHandler failure messages
Signed-off-by: SaloniRathi <45892093+SaloniRathi@users.noreply.github.com>
2026-07-16 17:43:32 -05:00
Fu Wei
94aa7cdd48 Merge pull request #13801 from vvoland/work-shim2
core/runtime/v2: Preserve protobuf shim response bytes
2026-07-16 21:37:05 +00:00
Samuel Karp
4796c7b9d2 Merge pull request #13748 from mxpv/dev
Run CI against dev branches
2026-07-16 17:15:38 +00:00
Paweł Gronowski
dac4ea43f3 core/runtime/v2: Preserve protobuf shim response bytes
Shim start output was trimmed before protobuf decoding.
Because arbitrary protobuf fields may legitimately end with whitespace
bytes, including `\n`, trimming could corrupt metadata or capabilities
and cause decoding to fail.

Pass the raw command output to `parseStartResponse` and attempt protobuf
decoding before modifying the response.
Whitespace trimming now applies only to legacy JSON and plain-address
responses.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2026-07-16 19:03:21 +02:00
Samuel Karp
1ab181cb64 Merge pull request #13780 from mxpv/stale
Raise stale bot limits
2026-07-15 08:04:44 +00:00
Maksym Pavlenko
9e70782d9a Merge pull request #13792 from aysha-afrah26/tar-device-number-range
pkg/archive: reject out-of-range device numbers in layer headers
2026-07-14 19:19:18 +00:00
Samuel Karp
4a5b0733f5 Merge pull request #13469 from anmaxvl/blockcim-pull-fix
blockcim config and plugin initialization changes
2026-07-14 18:06:28 +00:00
Aysha Afrah Ziya
0205398ac2 pkg/archive: reject out-of-range device numbers in layer headers
Signed-off-by: Aysha Afrah Ziya <aysha26@digiscrypt.com>
2026-07-14 20:10:05 +05:30
Davanum Srinivas
70ec5b89f4 Merge pull request #13791 from pacoxu/patch-5
update runc to v1.5.1
2026-07-14 03:26:30 +00:00
Paco Xu
21efcf19a4 update runc to v1.5.1
release notes: https://github.com/opencontainers/runc/releases/tag/v1.5.1

Signed-off-by: Paco Xu <paco.xu@daocloud.io>
2026-07-14 10:39:56 +08:00
Maksym Pavlenko
12f6a4d585 Raise stale bot limits
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-07-12 17:18:23 -07:00
Maksym Pavlenko
ba015360dd Merge pull request #13757 from chrishenzie/fix-go-fuzz-flake
ci: bound Go fuzzing by execution count
2026-07-12 21:16:21 +00:00
Maksym Pavlenko
71b2388e4c Merge pull request #13504 from a7i/fix-cri-introspect-non-runc-features
fix(cri): introspect OCI runtime features for non-runc runtimes
2026-07-12 21:16:00 +00:00
Maksym Pavlenko
54f83847cb Merge pull request #13768 from containerd/dependabot/go_modules/github.com/klauspost/compress-1.19.0
build(deps): bump github.com/klauspost/compress from 1.18.6 to 1.19.0
2026-07-12 21:15:19 +00:00
Maksym Pavlenko
567f197994 Merge pull request #13766 from containerd/dependabot/go_modules/golang-x-c40dbcb055
build(deps): bump the golang-x group across 1 directory with 2 updates
2026-07-12 21:15:00 +00:00
Maksym Pavlenko
40d1168ab8 Merge pull request #13767 from containerd/dependabot/go_modules/google.golang.org/grpc-1.82.0
build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.0
2026-07-12 21:14:24 +00:00
dependabot[bot]
d5657dbf64 build(deps): bump the golang-x group across 1 directory with 2 updates
Bumps the golang-x group with 2 updates in the / directory: [golang.org/x/sync](https://github.com/golang/sync) and [golang.org/x/sys](https://github.com/golang/sys).


Updates `golang.org/x/sync` from 0.21.0 to 0.22.0
- [Commits](https://github.com/golang/sync/compare/v0.21.0...v0.22.0)

Updates `golang.org/x/sys` from 0.46.0 to 0.47.0
- [Commits](https://github.com/golang/sys/compare/v0.46.0...v0.47.0)

---
updated-dependencies:
- dependency-name: golang.org/x/sync
  dependency-version: 0.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
- dependency-name: golang.org/x/sys
  dependency-version: 0.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-12 15:18:15 +00:00
dependabot[bot]
bfae6f3513 build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.0
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.81.1 to 1.82.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.81.1...v1.82.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.82.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-12 15:18:05 +00:00
Fu Wei
757416ca74 Merge pull request #13740 from liggitt/main
build(deps): bump github.com/containerd/ttrpc to v1.2.9
2026-07-12 14:43:10 +00:00
dependabot[bot]
a9bb893ecb build(deps): bump docker/login-action from 4.2.0 to 4.4.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.2.0 to 4.4.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](650006c6eb...af1e73f918)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-10 23:25:37 +00:00
dependabot[bot]
61a70e7ef2 build(deps): bump github.com/klauspost/compress from 1.18.6 to 1.19.0
Bumps [github.com/klauspost/compress](https://github.com/klauspost/compress) from 1.18.6 to 1.19.0.
- [Release notes](https://github.com/klauspost/compress/releases)
- [Commits](https://github.com/klauspost/compress/compare/v1.18.6...v1.19.0)

---
updated-dependencies:
- dependency-name: github.com/klauspost/compress
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-10 23:23:43 +00:00
dependabot[bot]
51355849a7 build(deps): bump docker/setup-buildx-action from 4.1.0 to 4.2.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](d7f5e7f509...bb05f3f551)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-10 23:22:41 +00:00
Chris Henzie
c1b9b78f47 ci: bound Go fuzzing by execution count
Go can report context deadline exceeded when a duration-based fuzz limit
expires (https://go.dev/issue/75804).

Use a 50,000-execution limit based on the roughly 47,000 executions
FuzzImageStore completed in 30 seconds in CI. This keeps work stable
across runners and avoids the duration issue.

Assisted-by: Codex
Signed-off-by: Chris Henzie <chrishenzie@gmail.com>
2026-07-09 16:45:11 -07:00
Maksym Pavlenko
6c438b0479 Run CI against dev branches
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2026-07-09 10:20:18 -07:00
Maksym Pavlenko
af34190eb2 Merge pull request #13728 from AkihiroSuda/lima
CI: migrate Vagrant to Lima
2026-07-09 02:54:48 +00:00
Maksym Pavlenko
20f86be5d8 Merge pull request #13739 from fuweid/update-release-md
RELEASES.md: mark 2.1 EOL and update latest 1.7/2.0/2.1/2.2/2.3 tags
2026-07-09 01:42:42 +00:00
Sebastiaan van Stijn
5de7b675c6 README: remove Go Report Card badge
The project was sunset;

> After more than a decade of serving the ecosystem, the time
> has come to sunset Go Report Card. Following the loss of our
> primary infrastructure sponsor, maintaining the web app is
> no longer sustainable.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2026-07-09 01:01:16 +02:00
Jordan Liggitt
658a1c78b5 build(deps): bump github.com/containerd/ttrpc to v1.2.9
Signed-off-by: Jordan Liggitt <liggitt@google.com>
2026-07-08 16:01:04 -04:00
Wei Fu
617944babe RELEASES.md: mark 2.1 EOL and update latest 1.7/2.0/2.1/2.2/2.3 tags
Signed-off-by: Wei Fu <fuweid89@gmail.com>
2026-07-08 15:11:18 -04:00
Fu Wei
52f81245d3 Merge pull request #13547 from cshung/resolve-403-error-body
remotes: surface OCI error body in registry 4xx responses
2026-07-08 16:04:24 +00:00
Akihiro Suda
a42b09aaa6 CI: migrate Vagrant to Lima
Vagrant is no longer well maintained: e.g., its apt repository does not
provide packages for Ubuntu 26.04 (hashicorp/vagrant#13811), and recent
Fedora boxes are no longer published to HashiCorp's registry, so the CI
had to download the box file manually from Fedora mirrors.

The test scripts in the Vagrantfile were split out to script/vm/*.sh .
The scripts depend on neither Vagrant nor Lima, and can be used with
other VM environments too.

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2026-07-08 21:09:27 +09:00
Samuel Karp
cb66686cbb Merge pull request #13664 from samuelkarp/criu-check-fail-fast
Disable checkpoint restore codepath when CRIU is not installed
2026-07-08 06:10:01 +00:00
Samuel Karp
7cf8e7f6a1 Merge pull request #13725 from chrishenzie/go1.26.5
Update go to 1.26.5
2026-07-07 23:45:58 +00:00