Skip to content

Makefile: build proto files unconditionally#229

Merged
klihub merged 2 commits into
containerd:mainfrom
marquiz:devel/makefile-proto-targets
Oct 3, 2025
Merged

Makefile: build proto files unconditionally#229
klihub merged 2 commits into
containerd:mainfrom
marquiz:devel/makefile-proto-targets

Conversation

@marquiz

@marquiz marquiz commented Sep 11, 2025

Copy link
Copy Markdown
Contributor

Ditch the makefile pattern rule which simply doesn't work in scenarios where both the source and the build targets are stored in the git repo (as git operations mangle the time stamps).

So much grey hair avoided when the stuff just force generates everything instead of leaving you wonder why the tools didn't work as expected.

@marquiz marquiz force-pushed the devel/makefile-proto-targets branch from cc8b948 to 840defb Compare September 11, 2025 11:54
@marquiz

marquiz commented Sep 11, 2025

Copy link
Copy Markdown
Contributor Author

@klihub

klihub commented Sep 11, 2025

Copy link
Copy Markdown
Member

@klihub @mikebrow @thaJeztah @chrishenzie

@marquiz Is this a workaround for a problem with the local development workflow, or a workaround for the occasionally reoccuring 'protoc not found' problem in our github CI ?

@marquiz

marquiz commented Sep 11, 2025

Copy link
Copy Markdown
Contributor Author

@marquiz Is this a workaround for a problem with the local development workflow, or a workaround for the occasionally reoccuring 'protoc not found' problem in our github CI ?

This is a workaround (or I would say fix) to local development workflow, doing make build-proto (or make build-proto-dockerized).

@marquiz marquiz force-pushed the devel/makefile-proto-targets branch from 840defb to 0ebefc6 Compare September 18, 2025 08:51
@marquiz

marquiz commented Sep 25, 2025

Copy link
Copy Markdown
Contributor Author

ping @klihub

@klihub

klihub commented Sep 25, 2025

Copy link
Copy Markdown
Member

@marquiz Would you be okay with a milder version of this, for instance something like this: klihub@486e315 ? That allows forcing rebuild of protobufs and it always forces it in the dockerized rebuild, so in your workflow it will always rebuild.

@marquiz

marquiz commented Sep 25, 2025

Copy link
Copy Markdown
Contributor Author

I think that would work. TBH, I just don't get the the insistence on these pattern rules that fundamentally don't work in this setup (when both the sources and targets are stored in git). I kind of get that from a philosophical "this is the way that make was designed to be used" pov but if it doesn't work why bother. The amount of wasted build time should certainly not be an issue, I'd guess the rule doesn't get run very often even globally.

@klihub

klihub commented Sep 25, 2025

Copy link
Copy Markdown
Member

I think that would work. TBH, I just don't get the the insistence on these pattern rules that fundamentally don't work in this setup (when both the sources and targets are stored in git).

Both the sources and targets are stored in git, but they are supposed to be consistently committed: if you change the protobuf definition, you should recompile and commit the compiled versions. Now I understand that right after a fresh clone the timestamps might be off, but that only should cause IMO (and in my experience) unnecessary recompilation and not the other way around (since the protobuf definition and the compiled protobuf files should always be consistently committed in the repo). I have seen this happening occasionally in CI. But I don't rememeber ever running into a situation in my local workflow, where I would have changed the protobuf definition, yet it would not have been recompiled. And to be completely honest, it might very well be that it has happened to me and I just shrugged it off with a touch pkg/api/api.proto; make. But I think if this was a frequently occurring prevalent problem, my foggy brain would probably remember at least a few occasions.

I kind of get that from a philosophical "this is the way that make was designed to be used" pov but if it doesn't work why bother. The amount of wasted build time should certainly not be an issue, I'd guess the rule doesn't get run very often even globally.

@marquiz That's not my reason/primary concern here. I'm more wary of folks having random different and newer versions of protoc& al. installed natively instead of the (fairly old) version we use (in sync with containerd). This then guarantees with 100% probability that a recompile will not result bit-by-bit in the same output, so it will result in false changes. If then folks are not extra careful and commit all their changes and file PRs from that, we need to point out that part of the PR are not real changes and should be reverted out. We have seen this already in the past even without a forced recompile by make build.

@marquiz

marquiz commented Sep 25, 2025

Copy link
Copy Markdown
Contributor Author

Both the sources and targets are stored in git, but they are supposed to be consistently committed: if you change the protobuf definition, you should recompile and commit the compiled versions.

It doesn't matter how you commit then as git will tamper the timestamps. This is particularly annoying and breaks you when you have feature branches that you need to rebase (and e.g. happen to have conflicts).

I'm more wary of folks having random different and newer versions of protoc& al. installed natively instead of the (fairly old) version we use (in sync with containerd).

I think this is not the correct way to try to prevent that. If this is a concern we should change all:/build: targets to depend on build-proto-containerized to get reproducible builds.

@klihub

klihub commented Sep 25, 2025

Copy link
Copy Markdown
Member

Both the sources and targets are stored in git, but they are supposed to be consistently committed: if you change the protobuf definition, you should recompile and commit the compiled versions.

It doesn't matter how you commit then as git will tamper the timestamps. This is particularly annoying and breaks you when you have feature branches that you need to rebase (and e.g. happen to have conflicts).

If you have a conflict in a compiled protobuf file and you try to resolve it manually, you are really doing something wrong. The right way to resolve such a conflict is to (resolve any conflicts you might have in the proto source), remove all generated pb.go files with conflicts, then run make and let it regenerate the missing compiled proto files (and all others that come from that same compilation).

I'm more wary of folks having random different and newer versions of protoc& al. installed natively instead of the (fairly old) version we use (in sync with containerd).

I think this is not the correct way to try to prevent that. If this is a concern we should change all:/build: targets to depend on build-proto-containerized to get reproducible builds.

@klihub

klihub commented Sep 26, 2025

Copy link
Copy Markdown
Member

I think this is not the correct way to try to prevent that. If this is a concern we should change all:/build: targets to depend on build-proto-containerized to get reproducible builds.

@marquiz Well, this is also true. And if I am the only one who thinks that unconditionally always regenerating and recompiling everything in the local development workflow is not the right way to go, then I realize I should simply give up and accept it. And if we go with that then I agree that a dockerized proto-build is friendlier.

@marquiz

marquiz commented Sep 26, 2025

Copy link
Copy Markdown
Contributor Author

The right way to resolve such a conflict is to (resolve any conflicts you might have in the proto source), remove all generated pb.go

I beg to differ here. I don't want (and shouldn't need) to manually resolve or remove anything. I resolve conflicts in the .proto file (if any) and run "regenerate auto-generated stuff" and it should just work.

@klihub

klihub commented Sep 26, 2025

Copy link
Copy Markdown
Member

The right way to resolve such a conflict is to (resolve any conflicts you might have in the proto source), remove all generated pb.go

I beg to differ here. I don't want (and shouldn't need) to manually resolve or remove anything. I resolve conflicts in the .proto file (if any) and run "regenerate auto-generated stuff" and it should just work.

@marquiz Well, if we get in #232 to avoid dockerized proto builds then I'm fine with this and always rebuilding.

Ditch the makefile pattern rule which simply doesn't work in scenarios
where both the source and the build targets are stored in the git repo
(as git operations mangle the time stamps).

So much grey hair avoided when the stuff just force generates
everything instead of leaving you wonder why the tools didn't work as
expected.

Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
@marquiz marquiz force-pushed the devel/makefile-proto-targets branch from 0ebefc6 to 9623748 Compare September 30, 2025 17:13
@marquiz

marquiz commented Sep 30, 2025

Copy link
Copy Markdown
Contributor Author

Rebased. #232 and #233 are now merged. We should now be safe in always (re-)building the proto files with correct version of the tooling.

@klihub @mikebrow @chrishenzie

@klihub

klihub commented Sep 30, 2025

Copy link
Copy Markdown
Member

Rebased. #232 and #233 are now merged. We should now be safe in always (re-)building the proto files with correct version of the tooling.

@klihub @mikebrow @chrishenzie

Can you add to this PR a commit which removes dockerized proto building ? It is not necessary any more after the recently merged PRs.

@marquiz marquiz force-pushed the devel/makefile-proto-targets branch from 5db759b to f880e1c Compare October 1, 2025 05:48
@marquiz

marquiz commented Oct 1, 2025

Copy link
Copy Markdown
Contributor Author

Can you add to this PR a commit which removes dockerized proto building ? It is not necessary any more after the recently merged PRs.

Sure, done. I don't think the dockerized build even worked anymore as we mounted the source tree as ro inside the build...

@mikebrow mikebrow left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment thread Makefile
Comment on lines -86 to -90
build-proto-dockerized:
$(Q)docker build --build-arg ARTIFACTS="$(dir $(PROTO_GOFILES))" --target final \
--output type=local,dest=$(RESOLVED_PWD) \
-f hack/Dockerfile.buildproto .
$(Q)tar xf artifacts.tgz && rm -f artifacts.tgz

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we keep a target to allow building on non-Linux machines? Don't think the native target works on macOS currently:

arm64)
wget -O "$PROTOBUF_DIR/protobuf" "https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-linux-aarch_64.zip"
unzip "$PROTOBUF_DIR/protobuf" -d "$INSTALL_DIR"
;;
amd64|386)
if [ "$GOOS" = windows ]; then
wget -O "$PROTOBUF_DIR/protobuf" "https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-win32.zip"
elif [ "$GOOS" = linux ]; then
wget -O "$PROTOBUF_DIR/protobuf" "https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-linux-x86_64.zip"
fi
unzip -o "$PROTOBUF_DIR/protobuf" -d "$INSTALL_DIR"
;;
ppc64le)
wget -O "$PROTOBUF_DIR/protobuf" "https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-linux-ppcle_64.zip"
unzip -o "$PROTOBUF_DIR/protobuf" -d "$INSTALL_DIR"
;;
*)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mm, true. Maybe we should keep it. I just need to fix it (I think). WDYT @klihub

@thaJeztah thaJeztah Oct 2, 2025

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, my comment was a bit short (it was late 😂)

Yeah, these are tricky; I think the changes to install the tools locally were at least are good; there's various projects that require you to either "have the tools installed" already, or "figure out how to install", which may result in having to install different (system-wide) versions of the tools, which is a big pain if you happen to be jumping between various such projects for contributions 😅

Then again, depending on the situation, having a containerized option available is good as well, as sometimes the (version of) tools to install can differ between branches for the same project, so having an option to generate code without tools lingering around on your system ... is really great to have.

@marquiz marquiz force-pushed the devel/makefile-proto-targets branch from f880e1c to 5c7788e Compare October 2, 2025 13:19
@marquiz

marquiz commented Oct 2, 2025

Copy link
Copy Markdown
Contributor Author

Updated. Did what @thaJeztah suggested: fixed the dockerized proto build instead of dropping it.

Not too bad on my laptop (when protoc has been cached):

$ find pkg/ -name '*pb.go' | xargs rm

$ time make build-proto-dockerized 
[+] Building 8.5s (10/10) FINISHED                                                                   docker:default
 => [internal] load build definition from Dockerfile.buildproto                                                0.0s
 => => transferring dockerfile: 1.17kB                                                                         0.0s
 => [internal] load metadata for docker.io/library/golang:1.24-bookworm                                        0.2s
 => [internal] load .dockerignore                                                                              0.0s
 => => transferring context: 47B                                                                               0.0s
 => [builder 1/4] FROM docker.io/library/golang:1.24-bookworm@sha256:b8bae5bd9ba9b1f89b635c91c24cc75cea335a16  0.0s
 => [internal] load build context                                                                              0.1s
 => => transferring context: 130.40kB                                                                          0.1s
 => CACHED [builder 2/4] WORKDIR /go/src                                                                       0.0s
 => CACHED [builder 3/4] RUN apt-get update && apt-get install -y unzip                                        0.0s
 => [builder 4/4] RUN --mount=type=cache,target=/go/pkg/mod/     --mount=type=cache,target=/go/tools/,sharing  7.4s
 => [final 1/1] COPY --from=builder /artifacts.tgz .                                                           0.0s 
 => exporting to client directory                                                                              0.0s 
 => => copying files 69.99kB                                                                                   0.0s 
                                                                                                                    
real	0m8.768s                                                                                                    
user	0m0.240s                                                                                                    
sys	0m0.173s

@klihub klihub self-requested a review October 2, 2025 17:54
Comment thread hack/Dockerfile.buildproto Outdated
Signed-off-by: Markus Lehtonen <markus.lehtonen@intel.com>
@marquiz marquiz force-pushed the devel/makefile-proto-targets branch from 5c7788e to d99f960 Compare October 3, 2025 04:33
@klihub klihub merged commit e3bff1d into containerd:main Oct 3, 2025
16 checks passed
@marquiz marquiz deleted the devel/makefile-proto-targets branch October 3, 2025 07:23
jeniawhite pushed a commit to elastic/cloudbeat that referenced this pull request Apr 22, 2026
…4) (#4771)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[github.com/containerd/containerd](https://redirect.github.com/containerd/containerd)
| indirect | major | `v1.7.31` -> `v2.2.3` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>containerd/containerd
(github.com/containerd/containerd)</summary>

###
[`v2.2.3`](https://redirect.github.com/containerd/containerd/releases/tag/v2.2.3):
containerd 2.2.3

[Compare
Source](https://redirect.github.com/containerd/containerd/compare/v2.2.2...v2.2.3)

Welcome to the v2.2.3 release of containerd!

The third patch release for containerd 2.2 contains various fixes
and updates including a security patch.

##### Security Updates

-   **spdystream**
-
[**CVE-2026-35469**](https://redirect.github.com/moby/spdystream/security/advisories/GHSA-pc3f-x583-g7j2)

##### Highlights

##### Container Runtime Interface (CRI)

- Preserve cgroup mount options for privileged containers
([#&#8203;13120](https://redirect.github.com/containerd/containerd/pull/13120))
- Ensure UpdatePodSandbox returns Unimplemented instead of a generic
error
([#&#8203;13023](https://redirect.github.com/containerd/containerd/pull/13023))

##### Go client

- Handle absolute symlinks in rootfs user lookup to fix regressions when
using Go 1.24
([#&#8203;13015](https://redirect.github.com/containerd/containerd/pull/13015))

##### Image Distribution

- Enable mount manager in diff walking to fix layer extraction errors
with some snapshotters (e.g., EROFS)
([#&#8203;13198](https://redirect.github.com/containerd/containerd/pull/13198))
- Apply hardening to prevent TOCTOU race during tar extraction
([#&#8203;12971](https://redirect.github.com/containerd/containerd/pull/12971))

##### Runtime

- Restore support for client-mounted roots in Windows containers using
process isolation
([#&#8203;13195](https://redirect.github.com/containerd/containerd/pull/13195))
- Update runc to v1.3.5
([#&#8203;13061](https://redirect.github.com/containerd/containerd/pull/13061))
- Apply absolute symlink resolution to /etc/group in OCI spec to fix
lookups on NixOS-style systems
([#&#8203;13019](https://redirect.github.com/containerd/containerd/pull/13019))
- Handle absolute symlinks in rootfs user lookup to fix regressions when
using Go 1.24
([#&#8203;13015](https://redirect.github.com/containerd/containerd/pull/13015))

##### Snapshotters

- Fix bug that caused whiteouts to be ignored when parallel unpack was
used
([#&#8203;13125](https://redirect.github.com/containerd/containerd/pull/13125))

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

##### Contributors

-   Samuel Karp
-   Sebastiaan van Stijn
-   Maksym Pavlenko
-   Chris Henzie
-   Derek McGowan
-   Paulo Oliveira
-   Henry Wang
-   Phil Estes
-   Wei Fu
-   Akihiro Suda
-   Gao Xiang
-   Ricardo Branco
-   Shachar Tal

##### Changes

<details><summary>40 commits</summary>
<p>

- Prepare release notes for v2.2.3
([#&#8203;13224](https://redirect.github.com/containerd/containerd/pull/13224))
-
[`8a0f4ed5d`](https://redirect.github.com/containerd/containerd/commit/8a0f4ed5d360171d62ca625bc93f393a36241189)
Prepare release notes for v2.2.3
- update github.com/moby/spdystream v0.5.1
([#&#8203;13217](https://redirect.github.com/containerd/containerd/pull/13217))
-
[`31bd34a06`](https://redirect.github.com/containerd/containerd/commit/31bd34a064dc7136413efde09b99a2bdd14dabe9)
update github.com/moby/spdystream v0.5.1
- vendor: github.com/klauspost/compress v1.18.5
([#&#8203;13197](https://redirect.github.com/containerd/containerd/pull/13197))
-
[`1336f6c45`](https://redirect.github.com/containerd/containerd/commit/1336f6c45d25c674963e5cb86ee1ea522e6f513e)
vendor: github.com/klauspost/compress v1.18.5
- diff/walking: enable mount manager
([#&#8203;13198](https://redirect.github.com/containerd/containerd/pull/13198))
-
[`409f75be8`](https://redirect.github.com/containerd/containerd/commit/409f75be8791d53e2e4e96ab060d8db56fd46b1e)
diff/walking: enable mount manager
- update runhcs to v0.14.1
([#&#8203;13195](https://redirect.github.com/containerd/containerd/pull/13195))
-
[`3f33146c1`](https://redirect.github.com/containerd/containerd/commit/3f33146c1c199f1d9479d791b105197cebf7b1bc)
update runhcs to v0.14.1
- vendor: github.com/Microsoft/hcsshim v0.14.1
([#&#8203;13196](https://redirect.github.com/containerd/containerd/pull/13196))
-
[`8bd1b74e5`](https://redirect.github.com/containerd/containerd/commit/8bd1b74e5dbcd6aad671666e13861a6c8a7bf13c)
vendor: github.com/Microsoft/hcsshim v0.14.1
-
[`c6b0be8e1`](https://redirect.github.com/containerd/containerd/commit/c6b0be8e1317166d53a05c308db3223293f36f85)
vendor: github.com/Microsoft/hcsshim v0.14.0
- update to Go 1.25.9, 1.26.2
([#&#8203;13190](https://redirect.github.com/containerd/containerd/pull/13190))
-
[`2ecde8cfe`](https://redirect.github.com/containerd/containerd/commit/2ecde8cfe12320fefd05e08c83e413a4046bb72c)
update to Go 1.25.9, 1.26.2
- Skip TestExportAndImportMultiLayer on s390x
([#&#8203;13154](https://redirect.github.com/containerd/containerd/pull/13154))
-
[`be554f478`](https://redirect.github.com/containerd/containerd/commit/be554f478ceb629d3dc3fbd5331b9167cc7a4870)
Skip TestExportAndImportMultiLayer on s390x
- Tweak mount info for overlayfs in case of parallel unpack
([#&#8203;13125](https://redirect.github.com/containerd/containerd/pull/13125))
-
[`660de195b`](https://redirect.github.com/containerd/containerd/commit/660de195b07db576cbe8aab53a4b6e87cc931347)
Tweak mount info for overlayfs in case of parallel unpack
-
[`bc9274a4b`](https://redirect.github.com/containerd/containerd/commit/bc9274a4b05342ba1096c73ce6ce8a505ce243ce)
Add integration test for issue 13030
- Preserve cgroup mount options for privileged containers
([#&#8203;13120](https://redirect.github.com/containerd/containerd/pull/13120))
-
[`c387890b5`](https://redirect.github.com/containerd/containerd/commit/c387890b582324c4cf11e940efe4268a21524ed6)
Add integration test for privileged container cgroup mounts
-
[`047a335a6`](https://redirect.github.com/containerd/containerd/commit/047a335a69d66e673ddc155fed779152e00a5652)
Forward RUNC_FLAVOR env var down to integration tests
-
[`9b2d72ee0`](https://redirect.github.com/containerd/containerd/commit/9b2d72ee03b548c8344cd243670e06f863a701a2)
Preserve host cgroup mount options for privileged containers
-
[`5b66cd6a0`](https://redirect.github.com/containerd/containerd/commit/5b66cd6a0902b7927eeb8107bb5a30d78436eaa3)
Move cgroup namespace placement higher in spec builder
- update runc binary to v1.3.5
([#&#8203;13061](https://redirect.github.com/containerd/containerd/pull/13061))
-
[`584205c2f`](https://redirect.github.com/containerd/containerd/commit/584205c2fa986334d22b840293b1060b10ab724e)
\[release/2.2] update runc binary to v1.3.5
- Fix vagrant on CI
([#&#8203;13066](https://redirect.github.com/containerd/containerd/pull/13066))
-
[`77c6886df`](https://redirect.github.com/containerd/containerd/commit/77c6886df6510bf1ac9326436e7b371a28eb5678)
Ignore NOCHANGE error
- Fix TOCTOU race bug in tar extraction
([#&#8203;12971](https://redirect.github.com/containerd/containerd/pull/12971))
-
[`fbed68b8f`](https://redirect.github.com/containerd/containerd/commit/fbed68b8fb97b778b0caf68167cb0c4ab4af27df)
Fix TOCTOU race bug in tar extraction
- cri: UpdatePodSandbox should return Unimplemented
([#&#8203;13023](https://redirect.github.com/containerd/containerd/pull/13023))
-
[`a83510103`](https://redirect.github.com/containerd/containerd/commit/a835101036b106386be8e5b433d5ca0f1f0529cd)
cri: UpdatePodSandbox should return Unimplemented
- fix(oci): apply absolute symlink resolution to /etc/group
([#&#8203;13019](https://redirect.github.com/containerd/containerd/pull/13019))
-
[`ee4179e52`](https://redirect.github.com/containerd/containerd/commit/ee4179e5212c09e7bc4c429bf5b77eabb2b84662)
fix(oci): apply absolute symlink resolution to /etc/group
- fix(oci): handle absolute symlinks in rootfs user lookup
([#&#8203;13015](https://redirect.github.com/containerd/containerd/pull/13015))
-
[`fd061b848`](https://redirect.github.com/containerd/containerd/commit/fd061b84887177b969e8f8e2499e780341cde0ae)
test(oci): use fstest and mock fs for better symlink coverage
-
[`5d44d2c22`](https://redirect.github.com/containerd/containerd/commit/5d44d2c220d6296156c1c4fe3a500958667a3708)
fix(oci): handle absolute symlinks in rootfs user lookup
- update to go1.25.8, test go1.26.1
([#&#8203;13011](https://redirect.github.com/containerd/containerd/pull/13011))
-
[`00c776f07`](https://redirect.github.com/containerd/containerd/commit/00c776f075f06e4eeb4bfd97e23b3331c5c96bbc)
update to go1.25.8, test go1.26.1

</p>
</details>

##### Dependency Changes

-   **github.com/Microsoft/hcsshim**   v0.14.0-rc.1 -> v0.14.1
-   **github.com/klauspost/compress**  v1.18.1 -> v1.18.5
-   **github.com/moby/spdystream**     v0.5.0 -> v0.5.1

Previous release can be found at
[v2.2.2](https://redirect.github.com/containerd/containerd/releases/tag/v2.2.2)

##### Which file should I download?

- `containerd-<VERSION>-<OS>-<ARCH>.tar.gz`: ✅Recommended. Dynamically
linked with glibc 2.35 (Ubuntu 22.04).
- `containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz`: Statically linked.
Expected to be used on Linux distributions that do not use glibc >=
2.35. Not position-independent.

In addition to containerd, typically you will have to install
[runc](https://redirect.github.com/opencontainers/runc/releases)
and [CNI
plugins](https://redirect.github.com/containernetworking/plugins/releases)
from their official sites too.

See also the [Getting
Started](https://redirect.github.com/containerd/containerd/blob/main/docs/getting-started.md)
documentation.

###
[`v2.2.2`](https://redirect.github.com/containerd/containerd/releases/tag/v2.2.2):
containerd 2.2.2

[Compare
Source](https://redirect.github.com/containerd/containerd/compare/v2.2.1...v2.2.2)

Welcome to the v2.2.2 release of containerd!

The second patch release for containerd 2.2 contains various fixes and
improvements.

##### Highlights

##### Container Runtime Interface (CRI)

- Fix migrated CRI image config when using legacy registry mirrors
([#&#8203;12987](https://redirect.github.com/containerd/containerd/pull/12987))
- Unpack images with per-layer labels for runtime-specific snapshotters
([#&#8203;12936](https://redirect.github.com/containerd/containerd/pull/12936))
- Fix CNI issue where DEL is never executed after a restart
([#&#8203;12926](https://redirect.github.com/containerd/containerd/pull/12926))
- Harden error handling to strip potentially-sensitive registry
parameters
([#&#8203;12804](https://redirect.github.com/containerd/containerd/pull/12804))
- Fix nil pointer dereference in container spec memory metrics when
memory constraints are not fully configured
([#&#8203;12731](https://redirect.github.com/containerd/containerd/pull/12731))
- Use the specified runtime handler when pulling images
([#&#8203;12721](https://redirect.github.com/containerd/containerd/pull/12721))
- Reduce noisy CDI logs
([#&#8203;12717](https://redirect.github.com/containerd/containerd/pull/12717))
- Fix regression for pulling encrypted images
([#&#8203;12712](https://redirect.github.com/containerd/containerd/pull/12712))

##### Runtime

- Fix unintended dropping of mount flags for read-only bind-mounts in
user namespaces
([#&#8203;12944](https://redirect.github.com/containerd/containerd/pull/12944))
- Fix AppArmor bug disallowing unix domain sockets on newer kernels
([#&#8203;12897](https://redirect.github.com/containerd/containerd/pull/12897))

##### ctr development tool

- Fix `ctr image mount` failing with "no such device"
([#&#8203;12831](https://redirect.github.com/containerd/containerd/pull/12831))

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

##### Contributors

-   Maksym Pavlenko
-   Akhil Mohan
-   Samuel Karp
-   Wei Fu
-   Michael Zappa
-   Phil Estes
-   Fabiano Fidêncio
-   Jérôme Poulin
-   Luke Hinds
-   Aadhar Agarwal
-   Akihiro Suda
-   Alex Chernyakhovsky
-   Chris Adeniyi-Jones
-   Kazuyoshi Kato
-   Rodrigo Campos
-   Sebastiaan van Stijn
-   You Binhao
-   ningmingxiao
-   qiuxue

##### Changes

<details><summary>48 commits</summary>
<p>

- Prepare release notes for v2.2.2
([#&#8203;12998](https://redirect.github.com/containerd/containerd/pull/12998))
-
[`7e6ecf434`](https://redirect.github.com/containerd/containerd/commit/7e6ecf43421f9cfa64cd7043f86ae224dc7dc0a4)
Prepare release notes for v2.2.2
- Fix migrated CRI image config when using legacy registry mirrors
([#&#8203;12987](https://redirect.github.com/containerd/containerd/pull/12987))
-
[`a20dead7c`](https://redirect.github.com/containerd/containerd/commit/a20dead7cc644291433b2da4b1efa2f70c8a144f)
set default config_path in plugin init
- Unpack images with per-layer labels for runtime-specific snapshotters
([#&#8203;12936](https://redirect.github.com/containerd/containerd/pull/12936))
-
[`a5f83d8c2`](https://redirect.github.com/containerd/containerd/commit/a5f83d8c2b419a3f882182d5beca60725387f499)
cri: unpack images with per-layer labels for runtime-specific
snapshotters
- ci: modprobe xt_comment on almalinux
([#&#8203;12957](https://redirect.github.com/containerd/containerd/pull/12957))
-
[`68855cb0b`](https://redirect.github.com/containerd/containerd/commit/68855cb0be5d372fd53c450e91cc3224157abb4b)
ci: modprobe xt_comment on almalinux
- Fix unintended dropping of mount flags for read-only bind-mounts in
user namespaces
([#&#8203;12944](https://redirect.github.com/containerd/containerd/pull/12944))
-
[`ef7a8beb3`](https://redirect.github.com/containerd/containerd/commit/ef7a8beb375c8322b9a09666f50150717b9ae335)
core/mount: add test for getUnprivilegedMountFlags
-
[`07b2cc07e`](https://redirect.github.com/containerd/containerd/commit/07b2cc07e4f3d553c5ca801c9f0800b55ba7eac2)
core/mount: fix getUnprivilegedMountFlags iterating over indices instead
of values
- Fix CNI issue where DEL is never executed after a restart
([#&#8203;12926](https://redirect.github.com/containerd/containerd/pull/12926))
-
[`54101116f`](https://redirect.github.com/containerd/containerd/commit/54101116fcdf18e21c8d202f86ed93c34a5932af)
add integration test for cni result nil
-
[`d44c4384e`](https://redirect.github.com/containerd/containerd/commit/d44c4384ec9f7adef9a4598e05f12e0850338fd8)
address comment
-
[`f1835270b`](https://redirect.github.com/containerd/containerd/commit/f1835270b0b800e4c1ba13391cd4a75617810615)
fix issue where cni del is never executed
- Fix AppArmor bug disallowing unix domain sockets on newer kernels
([#&#8203;12897](https://redirect.github.com/containerd/containerd/pull/12897))
-
[`6c05047b4`](https://redirect.github.com/containerd/containerd/commit/6c05047b4ba86d2fb857429c6272bb66679e7dee)
apparmor: explicitly set abi/3.0
- ci: add build/test go1.26.0, drop go1.24
([#&#8203;12917](https://redirect.github.com/containerd/containerd/pull/12917))
-
[`5dbf1b915`](https://redirect.github.com/containerd/containerd/commit/5dbf1b91596e35247f5928ad202da2a378859703)
update golangci-lint to v2.9.0 with go1.26 support
-
[`8ec695ebe`](https://redirect.github.com/containerd/containerd/commit/8ec695ebe8b6f8ec4fbd4ebbe658a2aaa35ac857)
remove windows/arm from cross build
-
[`b9c22a6e3`](https://redirect.github.com/containerd/containerd/commit/b9c22a6e39a937e86723bac0b63e30587cd8e936)
ci: build/test go1.26.0
- integration: Fix TestImageLoad() failure on CI
([#&#8203;12906](https://redirect.github.com/containerd/containerd/pull/12906))
-
[`09b876a81`](https://redirect.github.com/containerd/containerd/commit/09b876a8198818ab7d59e9037e6592889faea861)
integration: Fix TestImageLoad() failure on CI
- cri: Fix image volumes with user namespaces
([#&#8203;12885](https://redirect.github.com/containerd/containerd/pull/12885))
-
[`172ba65b6`](https://redirect.github.com/containerd/containerd/commit/172ba65b6a89479865832a7101f10e1b3a323d78)
cri: Fix image volumes with user namespaces
- update to go1.24.13, go1.25.7
([#&#8203;12871](https://redirect.github.com/containerd/containerd/pull/12871))
-
[`b4240ef87`](https://redirect.github.com/containerd/containerd/commit/b4240ef8782d274b97554881cec65aa8b1da0d2c)
update to go1.24.13, go1.25.7
-
[`94dbfaea7`](https://redirect.github.com/containerd/containerd/commit/94dbfaea7295d65c11f36510abc558e6e01c9205)
ci: bump go 1.24.12, 1.25.6
- ci: set fetch-depth for containerd to 0 for version parsing
([#&#8203;12875](https://redirect.github.com/containerd/containerd/pull/12875))
-
[`e46a7a286`](https://redirect.github.com/containerd/containerd/commit/e46a7a28682e79b9d851ea4de1840eb0dcf555b5)
set fetch-depth for containerd to 0 for version parsing
- Fix `ctr image mount` failing with "no such device"
([#&#8203;12831](https://redirect.github.com/containerd/containerd/pull/12831))
-
[`1d7908273`](https://redirect.github.com/containerd/containerd/commit/1d79082735d46fe24ded00a55ea6e3a33954593e)
core/mount/manager: fix bind mount missing rbind option
-
[`3d509bcd3`](https://redirect.github.com/containerd/containerd/commit/3d509bcd335b15cece69ebfa117681d2715df930)
core/mount/manager: add tests for WithTemporary option
- Harden error handling to strip potentially-sensitive registry
parameters
([#&#8203;12804](https://redirect.github.com/containerd/containerd/pull/12804))
-
[`cb3ae2119`](https://redirect.github.com/containerd/containerd/commit/cb3ae211952909a5c4d9fcb274e029286057fc34)
fix: sanitize error before gRPC return to prevent credential leak in pod
events
- bump google.golang.org/grpc from 1.76.0 to 1.78.0
([#&#8203;12739](https://redirect.github.com/containerd/containerd/pull/12739))
-
[`533a2552e`](https://redirect.github.com/containerd/containerd/commit/533a2552e9e1ff1896868986240f493e9f488920)
build(deps): bump google.golang.org/grpc from 1.77.0 to 1.78.0
-
[`b120237fb`](https://redirect.github.com/containerd/containerd/commit/b120237fb6af3b65117ba83af204cf92790acff3)
build(deps): bump google.golang.org/grpc from 1.76.0 to 1.77.0
- Fix nil pointer dereference in container spec memory metrics when
memory constraints are not fully configured
([#&#8203;12731](https://redirect.github.com/containerd/containerd/pull/12731))
-
[`4be4e5156`](https://redirect.github.com/containerd/containerd/commit/4be4e5156c1bfdd84f12bb43424261e3b5578208)
Fix nil pointer dereference in container spec memory metrics
- cri: emit warning for concurrent CreateContainer
([#&#8203;12735](https://redirect.github.com/containerd/containerd/pull/12735))
-
[`a76eb698a`](https://redirect.github.com/containerd/containerd/commit/a76eb698a52f1eb3018fe6126587dcf36fad4e7b)
cri: emit warning for concurrent CreateContainer
- Use the specified runtime handler when pulling images
([#&#8203;12721](https://redirect.github.com/containerd/containerd/pull/12721))
-
[`3d2e188b1`](https://redirect.github.com/containerd/containerd/commit/3d2e188b15d7db18f87251eaf134da463f36a8c8)
cri: Use the runtimeHandler parameter in PullImage
- Reduce noisy CDI logs
([#&#8203;12717](https://redirect.github.com/containerd/containerd/pull/12717))
-
[`633057382`](https://redirect.github.com/containerd/containerd/commit/633057382e7bfd16523865928549b38e0aa0b7e2)
cri: move noisy CDI logs to debug level
- Fix regression for pulling encrypted images
([#&#8203;12712](https://redirect.github.com/containerd/containerd/pull/12712))
-
[`8a7409e2e`](https://redirect.github.com/containerd/containerd/commit/8a7409e2e71fd9486db3504ab804d4419e45af41)
Reinstate image decryption

</p>
</details>

##### Dependency Changes

-   **github.com/go-jose/go-jose/v4**              v4.1.2 -> v4.1.3
-   **go.opentelemetry.io/auto/sdk**               v1.1.0 -> v1.2.1
-   **go.opentelemetry.io/otel**                   v1.37.0 -> v1.38.0
-   **go.opentelemetry.io/otel/metric**            v1.37.0 -> v1.38.0
-   **go.opentelemetry.io/otel/sdk**               v1.37.0 -> v1.38.0
-   **go.opentelemetry.io/otel/trace**             v1.37.0 -> v1.38.0
-   **golang.org/x/oauth2**                        v0.30.0 -> v0.32.0
- **google.golang.org/genproto/googleapis/api**
[`a7a43d2`](https://redirect.github.com/containerd/containerd/commit/a7a43d27e69b)
->
[`ab9386a`](https://redirect.github.com/containerd/containerd/commit/ab9386a59fda)
- **google.golang.org/genproto/googleapis/rpc**
[`a7a43d2`](https://redirect.github.com/containerd/containerd/commit/a7a43d27e69b)
->
[`ab9386a`](https://redirect.github.com/containerd/containerd/commit/ab9386a59fda)
-   **google.golang.org/grpc**                     v1.76.0 -> v1.78.0

Previous release can be found at
[v2.2.1](https://redirect.github.com/containerd/containerd/releases/tag/v2.2.1)

##### Which file should I download?

- `containerd-<VERSION>-<OS>-<ARCH>.tar.gz`: ✅Recommended. Dynamically
linked with glibc 2.35 (Ubuntu 22.04).
- `containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz`: Statically linked.
Expected to be used on Linux distributions that do not use glibc >=
2.35. Not position-independent.

In addition to containerd, typically you will have to install
[runc](https://redirect.github.com/opencontainers/runc/releases)
and [CNI
plugins](https://redirect.github.com/containernetworking/plugins/releases)
from their official sites too.

See also the [Getting
Started](https://redirect.github.com/containerd/containerd/blob/main/docs/getting-started.md)
documentation.

###
[`v2.2.1`](https://redirect.github.com/containerd/containerd/releases/tag/v2.2.1):
containerd 2.2.1

[Compare
Source](https://redirect.github.com/containerd/containerd/compare/v2.2.0...v2.2.1)

Welcome to the v2.2.1 release of containerd!

The first patch release for containerd 2.2 contains various fixes and
improvements.

##### Highlights

##### Container Runtime Interface (CRI)

- **Redact all query parameters in CRI error logs**
([#&#8203;12546](https://redirect.github.com/containerd/containerd/pull/12546))

##### Image Distribution

- **Fix image defaults on Darwin to usable configuration**
([#&#8203;12544](https://redirect.github.com/containerd/containerd/pull/12544))
- **Fix possible panic from WithMediaTypeKeyPrefix**
([#&#8203;12516](https://redirect.github.com/containerd/containerd/pull/12516))

##### Runtime

- **Update runc binary to v1.3.4**
([#&#8203;12593](https://redirect.github.com/containerd/containerd/pull/12593))
- **Fix parsing of hugetlb.<size>.events files**
([containerd/cgroups#379](https://redirect.github.com/containerd/cgroups/pull/379))

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

##### Contributors

-   Krisztian Litkey
-   Markus Lehtonen
-   Akihiro Suda
-   Mike Brown
-   Sebastiaan van Stijn
-   Derek McGowan
-   Heran Yang
-   Wei Fu
-   Phil Estes
-   Samuel Karp
-   Austin Vazquez
-   Sascha Grunert
-   Akhil Mohan
-   Andrey Noskov
-   Brian Goff
-   CrazyMax
-   Davanum Srinivas
-   Gaurav Ghildiyal
-   Neeraj Krishna Gopalakrishna
-   Paweł Gronowski
-   Tariq Ibrahim
-   TomerLev
-   Tõnis Tiigi
-   bo.jiang
-   ningmingxiao

##### Changes

<details><summary>53 commits</summary>
<p>

- Prepare release notes for v2.2.1
([#&#8203;12677](https://redirect.github.com/containerd/containerd/pull/12677))
-
[`f6bae1f88`](https://redirect.github.com/containerd/containerd/commit/f6bae1f8807a099a0b101e584f1f8aabddab91a6)
Prepare release notes for v2.2.1
- cri,nri: bump NRI dependencies to v0.11.0
([#&#8203;12701](https://redirect.github.com/containerd/containerd/pull/12701))
-
[`c22cf5d49`](https://redirect.github.com/containerd/containerd/commit/c22cf5d49819a2996f184db954c53c2060916314)
cri,nri: pass any linux security profile to plugins.
-
[`d7532de75`](https://redirect.github.com/containerd/containerd/commit/d7532de751f81eee4f03001bb46e49d76a1607fb)
cri,nri: pass any linux RDT constraints to plugins.
-
[`ef36e6181`](https://redirect.github.com/containerd/containerd/commit/ef36e6181456ebb9919d2a51d786f416f85f780b)
cri,nri: pass any linux net devices to plugins.
-
[`d56faf426`](https://redirect.github.com/containerd/containerd/commit/d56faf4261b5f946caa92c4869963f89f63a9b22)
cri,nri: pass any linux scheduler attributes to plugins.
-
[`e1824d261`](https://redirect.github.com/containerd/containerd/commit/e1824d2613d32793cf1fd7282f0b9f5f6f622613)
cri,nri: pass any linux I/O priority to plugins.
-
[`01d5490ae`](https://redirect.github.com/containerd/containerd/commit/01d5490ae26a05b1a73ca9e253761005c7286754)
go.{mod,sum}: bump NRI deps to v0.11.0, re-vendor.
- pkg/tracing: HTTPStatusCodeAttributes: remove use of deprecated
SemConv const
([#&#8203;12697](https://redirect.github.com/containerd/containerd/pull/12697))
-
[`58d23ab63`](https://redirect.github.com/containerd/containerd/commit/58d23ab63830dc41d7c2e1035a9c0a7a28b6fed2)
pkg/tracing: HTTPStatusCodeAttributes: remove use of deprecated SemConv
const
- cri/nri: short-circuit nil adjustment.
([#&#8203;12672](https://redirect.github.com/containerd/containerd/pull/12672))
-
[`05ccbb3a7`](https://redirect.github.com/containerd/containerd/commit/05ccbb3a7eb10a72427c722155a2eacdc2908a61)
cri/nri: short-circuit nil adjustment.
- go.{mod,sum}: bump CDI deps to v1.1.0.
([#&#8203;12664](https://redirect.github.com/containerd/containerd/pull/12664))
-
[`c166a577d`](https://redirect.github.com/containerd/containerd/commit/c166a577d0638de704d6c9f999858ed47cf06a60)
go.{mod,sum} bump CDI deps to v1.1.0.
- go.mod: containerd/zfs v2.0.0; remove exclude rules
([#&#8203;12654](https://redirect.github.com/containerd/containerd/pull/12654))
-
[`73a08aa00`](https://redirect.github.com/containerd/containerd/commit/73a08aa00dc98a0662a40d45ed50dac534dce1e6)
go.mod: remove exclude rules
-
[`cee08c8af`](https://redirect.github.com/containerd/containerd/commit/cee08c8af836002863b30e2ef8cd3c45b6ae56ad)
build(deps): bump github.com/containerd/zfs/v2 from 2.0.0-rc.0 to 2.0.0
- go.mod: github.com/containernetworking/plugins v1.9.0
([#&#8203;12658](https://redirect.github.com/containerd/containerd/pull/12658))
-
[`8a5fc8641`](https://redirect.github.com/containerd/containerd/commit/8a5fc86416926d2a2189861391cd77b07d7f4443)
go.mod: github.com/containernetworking/plugins v1.9.0
- go.mod: golang.org/x/crypto v0.45.0
([#&#8203;12638](https://redirect.github.com/containerd/containerd/pull/12638))
-
[`55c93d6fb`](https://redirect.github.com/containerd/containerd/commit/55c93d6fb85333d4988122b2ae97b947bcde02b7)
go.mod: golang.org/x/crypto v0.45.0
- ci :bump Go 1.24.11, 1.25.5
([#&#8203;12625](https://redirect.github.com/containerd/containerd/pull/12625))
-
[`aedd29bb4`](https://redirect.github.com/containerd/containerd/commit/aedd29bb4ecabfae1d8806dc1011a347a3401fb2)
ci: bump Go 1.24.11, 1.25.5
-
[`26628f139`](https://redirect.github.com/containerd/containerd/commit/26628f1397f991a9ee2fe7de32a6a2df70ab89bd)
ci: bump Go 1.24.10, 1.25.4
-
[`8bb0e9be6`](https://redirect.github.com/containerd/containerd/commit/8bb0e9be6ceebc1ad1d76c88a661bacf84921b3d)
ci(release): set GO_VERSION in Dockerfile
- core/runtime/v2: remove uses of otelgrpc.UnaryClientInterceptor
([#&#8203;12622](https://redirect.github.com/containerd/containerd/pull/12622))
-
[`ed19c5420`](https://redirect.github.com/containerd/containerd/commit/ed19c542003cc00988760b0f72e487c20dc198a0)
core/runtime/v2: remove uses of otelgrpc.UnaryClientInterceptor
- ci: update CIFuzz actions to support Ubuntu 24.04
([#&#8203;12632](https://redirect.github.com/containerd/containerd/pull/12632))
-
[`952237d9b`](https://redirect.github.com/containerd/containerd/commit/952237d9ba4390f4fa740f3832492e3870f0f9f9)
ci: update CIFuzz actions to support Ubuntu 24.04
- Update runc binary to v1.3.4
([#&#8203;12593](https://redirect.github.com/containerd/containerd/pull/12593))
-
[`fb5b818a9`](https://redirect.github.com/containerd/containerd/commit/fb5b818a9a34ad4fe3b0901c73cd7432ae4bb8bc)
runc: Update runc binary to v1.3.4
- : update containerd/cgroups from v3.1.0 to v3.1.2
([#&#8203;12598](https://redirect.github.com/containerd/containerd/pull/12598))
-
[`51582ed27`](https://redirect.github.com/containerd/containerd/commit/51582ed27b13941f6bbf1526d909a00deadfcc0f)
bump containerd/cgroups to v3.1.2
-
[`50d0e4fd4`](https://redirect.github.com/containerd/containerd/commit/50d0e4fd4cb909829d9965d9da5be04ee812fe29)
build(deps): bump github.com/containerd/cgroups/v3 from 3.1.0 to 3.1.1
- core/mount: should not call removeLoop when set autoclear
([#&#8203;12587](https://redirect.github.com/containerd/containerd/pull/12587))
-
[`41a69eb0d`](https://redirect.github.com/containerd/containerd/commit/41a69eb0d19cafbf40e03c36ef6be259a52d6f5e)
core/mount: should not call removeLoop when set autoclear
- build(deps): bump github.com/opencontainers/selinux
([#&#8203;12589](https://redirect.github.com/containerd/containerd/pull/12589))
-
[`e3bf2b80b`](https://redirect.github.com/containerd/containerd/commit/e3bf2b80b9ca3280fd64a2bd0436fcdb894c4410)
build(deps): bump github.com/opencontainers/selinux
- .github: skip 5 critest cases for window-2022
([#&#8203;12584](https://redirect.github.com/containerd/containerd/pull/12584))
-
[`da8e846f9`](https://redirect.github.com/containerd/containerd/commit/da8e846f97a081f580eccc4a7384f3f050dd5b5e)
.github: skip 5 critest cases in window CI pipeline
- Fix image defaults on Darwin to usable configuration
([#&#8203;12544](https://redirect.github.com/containerd/containerd/pull/12544))
-
[`d154e234b`](https://redirect.github.com/containerd/containerd/commit/d154e234b29c5bed4f14a72d605e92e4728415a2)
Update the ctr pull defaults when using the transfer service
-
[`09364216d`](https://redirect.github.com/containerd/containerd/commit/09364216de92aab056118507da59fabf642d88ac)
Fix transfer unpack defaults on darwin
-
[`2055d3c62`](https://redirect.github.com/containerd/containerd/commit/2055d3c62e85350642c4b031c35a63b22e2ec6f7)
Update default differs on darwin
-
[`9da97686d`](https://redirect.github.com/containerd/containerd/commit/9da97686d151da046d5512bb9f7f1d67ea4c8393)
Use default writable size in erofs snapshotter for non-Linux hosts
-
[`eeb0f889a`](https://redirect.github.com/containerd/containerd/commit/eeb0f889aed826b58a3033a5a5b14dff6ccd1979)
Update default erofs block size on macOS during erofs diff
- Redact all query parameters in CRI error logs
([#&#8203;12546](https://redirect.github.com/containerd/containerd/pull/12546))
-
[`c707f771a`](https://redirect.github.com/containerd/containerd/commit/c707f771a872f9dd22ad8f2f827317a800e4a74f)
fix: redact all query parameters in CRI error logs
- Revert "Implement io.ReaderAt on docker fetch reader"
([#&#8203;12542](https://redirect.github.com/containerd/containerd/pull/12542))
-
[`678f944dd`](https://redirect.github.com/containerd/containerd/commit/678f944dd16601d08ecbb19e350acc027728b656)
Revert "Implement io.ReaderAt on docker fetch reader"
- Fix possible panic from WithMediaTypeKeyPrefix
([#&#8203;12516](https://redirect.github.com/containerd/containerd/pull/12516))
-
[`8b73c2de3`](https://redirect.github.com/containerd/containerd/commit/8b73c2de310e95fe3a143473b511fcf99d03692f)
remotes: fix possible panic from WithMediaTypeKeyPrefix

</p>
</details>

##### Changes from containerd/cgroups
<details><summary>13 commits</summary>
<p>

- ci: bump golangci-lint to v2.6.2
([containerd/cgroups#382](https://redirect.github.com/containerd/cgroups/pull/382))
-
[`a302e56`](https://redirect.github.com/containerd/cgroups/commit/a302e56b258f818a3dacb6e282907904f17ea239)
ci: bump golangci-lint to v2.6.2
-
[`731cf7a`](https://redirect.github.com/containerd/cgroups/commit/731cf7a96296e8eccffe9b986aece85ec4ab9b5b)
ci: suppress errcheck
-
[`9bee663`](https://redirect.github.com/containerd/cgroups/commit/9bee663879fd7f5b873fa40f61a837309c4be8b0)
utils: move Close() to defer block
-
[`9d7647c`](https://redirect.github.com/containerd/cgroups/commit/9d7647ce3bae2f67cc4ecfe1df51796caba49d52)
rdma: use strings.Cut in Go 1.18
-
[`109f063`](https://redirect.github.com/containerd/cgroups/commit/109f063d1c6cefbc3def1a8e0a169b746f7f5f0a)
memory_test: apply De Morgan's law
-
[`e6fcf3f`](https://redirect.github.com/containerd/cgroups/commit/e6fcf3fda4200609bb6323428e2d1f24f712e62e)
memory_test: omit type from declaration
- build(deps): bump actions/checkout from 5 to 6
([containerd/cgroups#381](https://redirect.github.com/containerd/cgroups/pull/381))
-
[`4e30098`](https://redirect.github.com/containerd/cgroups/commit/4e3009894821335455c4b804600eb9667b818f81)
build(deps): bump actions/checkout from 5 to 6
- Fix parsing of hugetlb.<size>.events files
([containerd/cgroups#379](https://redirect.github.com/containerd/cgroups/pull/379))
-
[`2ad7a12`](https://redirect.github.com/containerd/cgroups/commit/2ad7a1241827ef1bc4f964fe8a5248b073f2db82)
hugetlb: correctly parse hugetlb.<size>.events files
- go.mod: github.com/opencontainers/runtime-spec v1.3.0
([containerd/cgroups#376](https://redirect.github.com/containerd/cgroups/pull/376))
-
[`34ef430`](https://redirect.github.com/containerd/cgroups/commit/34ef430d727e569c31b4f2bbc7d83bffeb1c0165)
go.mod: github.com/opencontainers/runtime-spec v1.3.0

</p>
</details>

##### Changes from containerd/nri
<details><summary>79 commits</summary>
<p>

- adaptation: allow compiling out WASM support altogether.
([containerd/nri#253](https://redirect.github.com/containerd/nri/pull/253))
-
[`ab88fe6`](https://redirect.github.com/containerd/nri/commit/ab88fe680c11b35234c38c7d4eac72335721c78d)
adaptation: allow compiling out WASM support altogether.
- Support direct editing of the intelRdt config
([containerd/nri#215](https://redirect.github.com/containerd/nri/pull/215))
-
[`8c0c9f6`](https://redirect.github.com/containerd/nri/commit/8c0c9f67a905fb24682239a4d6d94b0dd52c13e7)
Implement removal of RDT
-
[`dfbae8a`](https://redirect.github.com/containerd/nri/commit/dfbae8a616b80037798e3cfb8315d70f3f2eff7e)
plugins: add sample rdt plugin
-
[`d05dd81`](https://redirect.github.com/containerd/nri/commit/d05dd818ed26c3dbeae0fce88289387b62e4665c)
pkg/adaptation: support new RDT fields
-
[`725289b`](https://redirect.github.com/containerd/nri/commit/725289b256878de8e965327ab6e70dc883ea771b)
pkg/runtime-tools/generate: support new RDT fields
-
[`a7832a2`](https://redirect.github.com/containerd/nri/commit/a7832a241411573e03982490197d7eb98a1c9d29)
api: add rdt
- update wazero/wazero version to v1.10.1
([containerd/nri#252](https://redirect.github.com/containerd/nri/pull/252))
-
[`9eb9a0f`](https://redirect.github.com/containerd/nri/commit/9eb9a0f0f6e223e6060805b55957f117f159f5cc)
update tetratelabs/wazero version to v1.10.1
- support specifying a custom NRI socket path
([containerd/nri#249](https://redirect.github.com/containerd/nri/pull/249))
-
[`2df6565`](https://redirect.github.com/containerd/nri/commit/2df656516e73b31e013257f713a1df5baa7fdcb0)
\[plugins] support specifying a custom NRI socket path
- pkg/api: add OptionalRepeatedString type
([containerd/nri#212](https://redirect.github.com/containerd/nri/pull/212))
-
[`687c1a6`](https://redirect.github.com/containerd/nri/commit/687c1a6a8b5c75056acd176dc89c45251926d0bb)
pkg/api: add OptionalRepeatedString type
- api,adaptation,generate: allow setting kernel scheduling policy
attributes.
([containerd/nri#160](https://redirect.github.com/containerd/nri/pull/160))
-
[`6a371ac`](https://redirect.github.com/containerd/nri/commit/6a371ac5e7afcd185ee575828f4822d779f0ded9)
device-injector: add scheduling policy adjustment.
-
[`e06369e`](https://redirect.github.com/containerd/nri/commit/e06369e8d1cad80f12eaf6f2c0da19c7ac78396c)
api,adaptation,generate: allow setting scheduler attributes.
- device-injector: always log injection summary.
([containerd/nri#246](https://redirect.github.com/containerd/nri/pull/246))
-
[`14cc2e2`](https://redirect.github.com/containerd/nri/commit/14cc2e2fb6b9504c5241e3156b24b1055ed4e3ed)
device-injector: always log injection summary.
- api,adaptation,generate: allow adjusting linux net devices
([containerd/nri#157](https://redirect.github.com/containerd/nri/pull/157))
-
[`5145c92`](https://redirect.github.com/containerd/nri/commit/5145c92e7c215ce3969805005ebdb0f37749e68b)
device-injector: add network device injection.
-
[`8a03823`](https://redirect.github.com/containerd/nri/commit/8a03823fe8afbca00b30f669805c911414c58803)
api,adaptation,generate: allow adjusting linux net devices.
- Add support for sysctl adjustment
([containerd/nri#248](https://redirect.github.com/containerd/nri/pull/248))
-
[`914fbf3`](https://redirect.github.com/containerd/nri/commit/914fbf3faf42da144376c133541c37211d2f9200)
default-validator: restrict sysctl adjustment
-
[`a418956`](https://redirect.github.com/containerd/nri/commit/a4189560f80f7c02579eec252ae43034bf21cb8a)
api: apply sysctl adjustments
-
[`8705f9b`](https://redirect.github.com/containerd/nri/commit/8705f9b1eb3107ad8bc422978b0412527e3fd236)
api: add sysctl container adjustment
- feat: Make logger a configurable struct member for stub
([containerd/nri#239](https://redirect.github.com/containerd/nri/pull/239))
-
[`08a891a`](https://redirect.github.com/containerd/nri/commit/08a891a81d90b03b5e5ae14734f5ad74e74c264b)
feat: Make logger a configurable struct member for stub
- Drop dependency on opencontainers/runtime-tools
([containerd/nri#247](https://redirect.github.com/containerd/nri/pull/247))
-
[`5e5c2be`](https://redirect.github.com/containerd/nri/commit/5e5c2be5f57436228f2762e0deb2c4f9873f3e9b)
Drop dependency on opencontainers/runtime-tools
- deps: bump runtime-spec to v1.3.0.
([containerd/nri#243](https://redirect.github.com/containerd/nri/pull/243))
-
[`29c5811`](https://redirect.github.com/containerd/nri/commit/29c581117267cb5d2289ff08902a93ff263caf0e)
(v0.1.0) examples: lock NRI, runtime spec deps.
-
[`d812952`](https://redirect.github.com/containerd/nri/commit/d8129529588cca090c972aa5e5f7775162af59da)
v010-adapter: lock NRI, runtime spec and tools deps.
-
[`7dd7c7f`](https://redirect.github.com/containerd/nri/commit/7dd7c7f8b21c08242de41634b12ab2ee71b91000)
api,runtime-tools: adjust for runtime-spec v1.3.0.
-
[`5d5d4c4`](https://redirect.github.com/containerd/nri/commit/5d5d4c4c877fdef4fe0938e627b11b97234195b8)
go.{mod,sum}: update runtime-tools, runtime-spec to v1.3.0.
- adaptation: ensure sync'ed plugins are fully registered in tests.
([containerd/nri#234](https://redirect.github.com/containerd/nri/pull/234))
-
[`c840397`](https://redirect.github.com/containerd/nri/commit/c84039771e9c2cee68952b4b7cc52cba1909784e)
adaptation: ensure sync'ed plugins are fully registered in tests.
- Fix wasm example
([containerd/nri#237](https://redirect.github.com/containerd/nri/pull/237))
-
[`44b2861`](https://redirect.github.com/containerd/nri/commit/44b2861a26c8e392229cd8b27a20cf689925f176)
Fix wasm example
- Makefile: build proto files unconditionally
([containerd/nri#229](https://redirect.github.com/containerd/nri/pull/229))
-
[`d99f960`](https://redirect.github.com/containerd/nri/commit/d99f96028e5226c004f94a3394be82190980c4bd)
Fix dockerized proto build
-
[`9623748`](https://redirect.github.com/containerd/nri/commit/9623748f543343bfe6b2312df47a7ed9000d47fe)
Makefile: build proto files unconditionally
-
[`25d9391`](https://redirect.github.com/containerd/nri/commit/25d9391690a7158d851364ef011e1f56fd607a70)
build: ensure we use correct version of protoc and its deps.
- adaptation: test with populated initial resources.
([containerd/nri#231](https://redirect.github.com/containerd/nri/pull/231))
-
[`b6b98b5`](https://redirect.github.com/containerd/nri/commit/b6b98b56a60df29da312cc1e1e070697dec43583)
adaptation: test with populated initial resources.
- Install protoc locally in the source tree
([containerd/nri#232](https://redirect.github.com/containerd/nri/pull/232))
-
[`2394daa`](https://redirect.github.com/containerd/nri/commit/2394daa45f1c7c0fcf28e9e39895c8b871a7445c)
Install protoc locally in the source tree
- plugins/logger: fix default event subscription mask.
([containerd/nri#158](https://redirect.github.com/containerd/nri/pull/158))
-
[`33b1db1`](https://redirect.github.com/containerd/nri/commit/33b1db1add2e9a603f7c47e1efa95d386f4af560)
logger: fix default event subscription mask.
- extract memory and CPU resource helpers
([containerd/nri#210](https://redirect.github.com/containerd/nri/pull/210))
-
[`7afb32a`](https://redirect.github.com/containerd/nri/commit/7afb32a3a444fd0a24e36988e0906ad35590c672)
extract memory and CPU resource helpers
- api: expose container user/group ID to plugins.
([containerd/nri#230](https://redirect.github.com/containerd/nri/pull/230))
-
[`22aeb46`](https://redirect.github.com/containerd/nri/commit/22aeb467e553bffd7650930b3bc6c28b95a2dee5)
docs: update README with container uid/gid info.
-
[`71b0335`](https://redirect.github.com/containerd/nri/commit/71b0335fdc262451ab2ff71591f1126c8a036265)
api,adaptation: add container uid/gid info.
- contrib: add example for enabling per-container RDT monitoring
([containerd/nri#228](https://redirect.github.com/containerd/nri/pull/228))
-
[`91fbf06`](https://redirect.github.com/containerd/nri/commit/91fbf06ed654e46629cb7aefb11856953720c9cf)
contrib: add example for enabling per-container RDT monitoring
- ci: enable image signing
([containerd/nri#224](https://redirect.github.com/containerd/nri/pull/224))
-
[`fb54916`](https://redirect.github.com/containerd/nri/commit/fb5491601ca84bf52b70e75d0e99ddc4dfe6a922)
ci: enable image signing
- golangci: disable QF1008 from staticcheck linter
([containerd/nri#226](https://redirect.github.com/containerd/nri/pull/226))
-
[`0b3b577`](https://redirect.github.com/containerd/nri/commit/0b3b5770d1f6845d3a3e52ccb5218f2b3ce1f34e)
golangci: disable QF1008 from staticcheck linter
- ci: bump golangci-lint to v2.4
([containerd/nri#225](https://redirect.github.com/containerd/nri/pull/225))
-
[`9787127`](https://redirect.github.com/containerd/nri/commit/9787127c0f3e69726b968e12b29dae31e35e250b)
Bump golangci-lint to v2.4
-
[`1a50ff5`](https://redirect.github.com/containerd/nri/commit/1a50ff585624f01763fd20aafaeaa92aa8b27c46)
Add nolint directives
-
[`00fa1a1`](https://redirect.github.com/containerd/nri/commit/00fa1a124e605590d3ceea1e687600785ae6518d)
Add and fix comments for exported types
-
[`ac21da7`](https://redirect.github.com/containerd/nri/commit/ac21da7be8f991a8699cef41acba8783dee5351e)
pkg/api/seccomp: add comments for exported functions
-
[`3aff986`](https://redirect.github.com/containerd/nri/commit/3aff986af5f8abefda8552edae991608782df46c)
pkg/runtime-tools/generate: remove embedded field "Generator"
-
[`c0c4bb6`](https://redirect.github.com/containerd/nri/commit/c0c4bb648ae46207f47d5b18bf447f7d5b32e26b)
pkg/api/validate: add comments for exported methods
-
[`c0ba9da`](https://redirect.github.com/containerd/nri/commit/c0ba9da712934c860a64af54d96b5cfc74672ff5)
adaptation/builtin: add comment for exported symbols
- .gitignore: revert hastily reviewed editor-specific addition.
([containerd/nri#221](https://redirect.github.com/containerd/nri/pull/221))
-
[`02376f3`](https://redirect.github.com/containerd/nri/commit/02376f371c707718144dd509172618c69ce6670c)
.gitignore: add comment about global gitignore.
-
[`9336a79`](https://redirect.github.com/containerd/nri/commit/9336a7933c666dbe6da09fe3cb46e80b478fb268)
Revert "nit: Add .idea folder to gitignore"
- nit: Add .idea folder to gitignore
([containerd/nri#218](https://redirect.github.com/containerd/nri/pull/218))
-
[`f578ea2`](https://redirect.github.com/containerd/nri/commit/f578ea2804642f2cd59594edc17b59d995289223)
nit: Add .idea folder to gitignore
- chore: clean and unify nolint directives
([containerd/nri#217](https://redirect.github.com/containerd/nri/pull/217))
-
[`21741b9`](https://redirect.github.com/containerd/nri/commit/21741b9ee40d69eb9ee3d5688e45b0b022c32738)
chore: clean and unify nolint directives
- Downgrade go to require 1.24.0
([containerd/nri#214](https://redirect.github.com/containerd/nri/pull/214))
-
[`d26e910`](https://redirect.github.com/containerd/nri/commit/d26e910702c62126decc6befe835e7315cd738a9)
Downgrade go to require 1.24.0
- Add dockerized target for building proto files
([containerd/nri#211](https://redirect.github.com/containerd/nri/pull/211))
-
[`13fcc07`](https://redirect.github.com/containerd/nri/commit/13fcc0773d23520ff44d54549122ec78c8f1e473)
Add dockerized target for building proto files

</p>
</details>

##### Changes from containerd/zfs
<details><summary>11 commits</summary>
<p>

- go.mod: update to stable containerd v2.0
([containerd/zfs#89](https://redirect.github.com/containerd/zfs/pull/89))
-
[`f11f891`](https://redirect.github.com/containerd/zfs/commit/f11f891ff42b3f8cd6f15d0fb18b2644a002bb85)
go.mod: update to stable containerd v2.0
- ci: update actions, test against go1.23, fix linting, and update
golangci-lint
([containerd/zfs#88](https://redirect.github.com/containerd/zfs/pull/88))
-
[`662ad3c`](https://redirect.github.com/containerd/zfs/commit/662ad3cefa596775e20a44a1c6b1037b0a0d539d)
gha: update golangci/golangci-lint-action@v9, golangci-lint v2.7
-
[`b0b2584`](https://redirect.github.com/containerd/zfs/commit/b0b25847ac875af99d62e9d4f83b2875a2f39df9)
remove nolint comments
-
[`7c4274b`](https://redirect.github.com/containerd/zfs/commit/7c4274bfa0a0df14d66fabb51269bfdfbf4e0b06)
fix error capitalization
-
[`24ce1b9`](https://redirect.github.com/containerd/zfs/commit/24ce1b93f0579fe5ecaec4bd55290ff7e2f456db)
fix inconsistent receiver name
-
[`c8545c3`](https://redirect.github.com/containerd/zfs/commit/c8545c33c3c9f4d881c45a22688be49f4ff1502a)
gha: update actions/checkout@v6
-
[`d23ec04`](https://redirect.github.com/containerd/zfs/commit/d23ec046338e9a5761083cef373be2bab1551995)
gha: update actions/setup-go@v6
-
[`bb45f6e`](https://redirect.github.com/containerd/zfs/commit/bb45f6e4d3965616dcaae6eaab9342af0e4c1cad)
gha: update containerd/project-checks@v1.2.2
-
[`65bc451`](https://redirect.github.com/containerd/zfs/commit/65bc451f6abab9d7133abd7c227be227ad6b1f0d)
gha: test against go1.23

</p>
</details>

##### Dependency Changes

- **github.com/containerd/cgroups/v3** v3.1.0 -> v3.1.2
- **github.com/containerd/nri** v0.10.0 -> v0.11.0
- **github.com/containerd/zfs/v2** v2.0.0-rc.0 -> v2.0.0
- **github.com/containernetworking/plugins** v1.8.0 -> v1.9.0
- **github.com/cyphar/filepath-securejoin** v0.5.1 ***new***
- **github.com/opencontainers/runtime-spec** v1.2.1 -> v1.3.0
- **github.com/opencontainers/runtime-tools**
[`0ea5ed0`](https://redirect.github.com/containerd/containerd/commit/0ea5ed0382a2)
->
[`edf4cb3`](https://redirect.github.com/containerd/containerd/commit/edf4cb3d2116)
- **github.com/opencontainers/selinux** v1.12.0 -> v1.13.1
- **github.com/tetratelabs/wazero** v1.9.0 -> v1.10.1
- **golang.org/x/crypto** v0.41.0 -> v0.45.0
- **golang.org/x/net** v0.43.0 -> v0.47.0
- **golang.org/x/sync** v0.17.0 -> v0.18.0
- **golang.org/x/sys** v0.37.0 -> v0.38.0
- **golang.org/x/term** v0.34.0 -> v0.37.0
- **golang.org/x/text** v0.28.0 -> v0.31.0
- **tags.cncf.io/container-device-interface** v1.0.1 -> v1.1.0
- **tags.cncf.io/container-device-interface/specs-go** v1.0.0 -> v1.1.0

Previous release can be found at
[v2.2.0](https://redirect.github.com/containerd/containerd/releases/tag/v2.2.0)

##### Which file should I download?

- `containerd-<VERSION>-<OS>-<ARCH>.tar.gz`: ✅Recommended. Dynamically
linked with glibc 2.35 (Ubuntu 22.04).
- `containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz`: Statically linked.
Expected to be used on Linux distributions that do not use glibc >=
2.35. Not position-independent.

In addition to containerd, typically you will have to install
[runc](https://redirect.github.com/opencontainers/runc/releases)
and [CNI
plugins](https://redirect.github.com/containernetworking/plugins/releases)
from their official sites too.

See also the [Getting
Started](https://redirect.github.com/containerd/containerd/blob/main/docs/getting-started.md)
documentation.

###
[`v2.2.0`](https://redirect.github.com/containerd/containerd/releases/tag/v2.2.0):
containerd 2.2.0

[Compare
Source](https://redirect.github.com/containerd/containerd/compare/v2.1.7...v2.2.0)

Welcome to the v2.2.0 release of containerd!

The second minor release of containerd 2.x focuses on continued
stability alongside
new features and improvements. This is the second time-based released
for containerd.

##### Highlights

- **Add mount manager**
([#&#8203;12063](https://redirect.github.com/containerd/containerd/pull/12063))

The mount manager is a new service that provides lifecycle management
for filesystem mounts
    to support more advanced use cases, such as:

- **Device formatting** to create formatted filesystems (xfs, ext4)
on-demand
- **Mount activation** to prepare devices such as loopbacks or network
fileystems
- **Mount transformation** to allow mount arguments to be filled in
dynamically from previous mounts
- **Garbage collection** of mounts to ensure temporary mounts are never
leaked
- **Add conf.d include in the default config**
([#&#8203;12323](https://redirect.github.com/containerd/containerd/pull/12323))
- **Add support for back references in the garbage collector**
([#&#8203;12025](https://redirect.github.com/containerd/containerd/pull/12025))

##### Container Runtime Interface (CRI)

- **Pod Sandbox Metrics**
([#&#8203;10691](https://redirect.github.com/containerd/containerd/pull/10691))

    Full implementation of Kubernetes CRI pod-level metrics API

- **ListPodSandboxMetrics**: Query metrics for running pods/sandboxes
- **ListMetricsDescriptors**: Discover available metrics and their
descriptions
- **Support image volume mount subpath**
([#&#8203;11578](https://redirect.github.com/containerd/containerd/pull/11578))

##### Go client

- **Update pkg/oci to use fs.FS interface and os.OpenRoot**
([#&#8203;12245](https://redirect.github.com/containerd/containerd/pull/12245))

##### Image Distribution

- **Parallel Unpack**
([#&#8203;12332](https://redirect.github.com/containerd/containerd/pull/12332))

Adds support for unpacking layers in parallel during pull operations.
This feature is supported with overlayfs and EROFS snapshotters.
- **OCI Referrers Support**
([#&#8203;12309](https://redirect.github.com/containerd/containerd/pull/12309))

Adds new referrers fetcher to remote registry interface using the [new
referrers endpoint added in OCI distribution-spec
1.1](https://redirect.github.com/opencontainers/distribution-spec/blob/v1.1.0/spec.md#listing-referrers)
- **Tar unpack progress through transfer service**
([#&#8203;11921](https://redirect.github.com/containerd/containerd/pull/11921))

##### Image Storage

- **EROFS enhancements using mount manager**
([#&#8203;12333](https://redirect.github.com/containerd/containerd/pull/12333))

Improvements to EROFS snapshotter using the new mount manager service

- **Quota Support**: Support for sized block devices as the upper layer
for overlayfs
- **Mount Lifecycle**: Loopback setup, block device creation, and
overlayfs argument formatting is moved to the
        mount  manager to be performed on-demand or within the runtime.
- **Mount handler**: To allow optimization of EROFS mount types based on
the current system
- **macOS Support**: EROFS snapshotter can now be used on Darwin to
natively allow image pulls
- **Tar index mode**: Efficiently generate EROFS metadata backed by
original tar content
([#&#8203;11919](https://redirect.github.com/containerd/containerd/pull/11919))
- **Add snapshotter and differ for block CIMs**
([#&#8203;12050](https://redirect.github.com/containerd/containerd/pull/12050))

##### Node Resource Interface (NRI)

- **Enable otel traces in NRI**
([#&#8203;12082](https://redirect.github.com/containerd/containerd/pull/12082))
- **Add WASM plugin support**
([containerd/nri#121](https://redirect.github.com/containerd/nri/pull/121))

##### Runtime

- **Improve shim load time after restart by loading in parallel**
([#&#8203;12142](https://redirect.github.com/containerd/containerd/pull/12142))
- **Fix pidfd leak in UnshareAfterEnterUserns**
([#&#8203;12167](https://redirect.github.com/containerd/containerd/pull/12167))

##### Deprecations

- **Deprecate cgroup v1**
([#&#8203;12445](https://redirect.github.com/containerd/containerd/pull/12445))
- **Postpone v2.2 deprecation items to v2.3**
([#&#8203;12417](https://redirect.github.com/containerd/containerd/pull/12417))

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

##### Contributors

-   Derek McGowan
-   Phil Estes
-   Akihiro Suda
-   Maksym Pavlenko
-   Wei Fu
-   Krisztian Litkey
-   Mike Brown
-   Akhil Mohan
-   Markus Lehtonen
-   Samuel Karp
-   Sebastiaan van Stijn
-   ningmingxiao
-   Austin Vazquez
-   yashsingh74
-   Gao Xiang
-   Kirtana Ashok
-   Jin Dong
-   Chris Henzie
-   Aadhar Agarwal
-   Etienne Champetier
-   Henry Wang
-   Rodrigo Campos
-   Sascha Grunert
-   Aleksa Sarai
-   Eric Mountain
-   Keith Mattix II
-   Paweł Gronowski
-   Tõnis Tiigi
-   Adrien Delorme
-   Apurv Barve
-   Enji Cooper
-   Kohei Tokunaga
-   Max Jonas Werner
-   Rehan Khan
-   Yang Yang
-   jinda.ljd
-   jokemanfire
-   Amit Barve
-   Andrew Halaney
-   Antonio Ojea
-   Brian Goff
-   Carlos Eduardo Arango Gutierrez
-   Chenyang Yan
-   Dawei Wei
-   Divya Rani
-   Evan Anderson
-   Fabiano Fidêncio
-   Iceber Gu
-   Jared Ledvina
-   Jonathan Perkin
-   Jose Fernandez
-   Karl Baumgartner
-   Michael Weibel
-   Osama Abdelkader
-   Radostin Stoyanov
-   Ruidong Cao
-   Sameer
-   Sergey Kanzhelev
-   Swagat Bora
-   Sylvain MOUQUET
-   Tom Wieczorek
-   Tycho Andersen
-   Wuyue (Tony) Sun
-   suranmiao
-   tanhuaan
-   wheat2018
-   zounengren

##### Dependency Changes

- **dario.cat/mergo** v1.0.1 -> v1.0.2
- **github.com/Microsoft/hcsshim** v0.13.0-rc.3 -> v0.14.0-rc.1
- **github.com/StackExchange/wmi**
[`cbe6696`](https://redirect.github.com/containerd/containerd/commit/cbe66965904d)
***new***
- **github.com/checkpoint-restore/checkpointctl** v1.3.0 -> v1.4.0
- **github.com/containerd/cgroups/v3** v3.0.5 -> v3.1.0
- **github.com/containerd/console** v1.0.4 -> v1.0.5
- **github.com/containerd/containerd/api** v1.9.0 -> v1.10.0
- **github.com/containerd/go-cni** v1.1.12 -> v1.1.13
- **github.com/containerd/nri** v0.8.0 -> v0.10.0
- **github.com/containerd/platforms** v1.0.0-rc.1 -> v1.0.0-rc.2
- **github.com/containernetworking/plugins** v1.7.1 -> v1.8.0
- **github.com/coreos/go-systemd/v22** v22.5.0 -> v22.6.0
- **github.com/cpuguy83/go-md2man/v2** v2.0.5 -> v2.0.7
- **github.com/emicklei/go-restful/v3** v3.11.0 -> v3.13.0
- **github.com/fxamacker/cbor/v2** v2.7.0 -> v2.9.0
- **github.com/go-jose/go-jose/v4** v4.0.5 -> v4.1.2
- **github.com/go-logr/logr** v1.4.2 -> v1.4.3
- **github.com/go-ole/go-ole** v1.2.6 ***new***
- **github.com/golang/groupcache**
[`41bb18b`](https://redirect.github.com/containerd/containerd/commit/41bb18bfe9da)
->
[`2c02b82`](https://redirect.github.com/containerd/containerd/commit/2c02b8208cf8)
- **github.com/google/certtostore** v1.0.6 ***new***
- **github.com/google/deck**
[`105ad94`](https://redirect.github.com/containerd/containerd/commit/105ad94aa8ae)
***new***
- **github.com/gorilla/websocket** v1.5.0 ->
[`e064f32`](https://redirect.github.com/containerd/containerd/commit/e064f32e3674)
- **github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus**
v1.0.1 -> v1.1.0
- **github.com/hashicorp/errwrap** v1.1.0 ***new***
- **github.com/intel/goresctrl** v0.8.0 -> v0.10.0
- **github.com/klauspost/compress** v1.18.0 -> v1.18.1
- **github.com/knqyf263/go-plugin** v0.9.0 ***new***
- **github.com/moby/sys/capability** v0.4.0 ***new***
- **github.com/modern-go/reflect2** v1.0.2 ->
[`35a7c28`](https://redirect.github.com/containerd/containerd/commit/35a7c28c31ee)
- **github.com/opencontainers/runtime-tools**
[`2e043c6`](https://redirect.github.com/containerd/containerd/commit/2e043c6bd626)
->
[`0ea5ed0`](https://redirect.github.com/containerd/containerd/commit/0ea5ed0382a2)
- **github.com/prometheus/client_golang** v1.22.0 -> v1.23.2
- **github.com/prometheus/client_model** v0.6.1 -> v0.6.2
- **github.com/prometheus/common** v0.62.0 -> v0.66.1
-   **

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* 1 * * 1-5" (UTC), Automerge - At
any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiOS40IiwibGFiZWxzIjpbIlRlYW06U2VjdXJpdHktQ2xvdWQgU2VydmljZXMiLCJiYWNrcG9ydC1za2lwIiwiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->

Co-authored-by: elastic-renovate-prod[bot] <174716857+elastic-renovate-prod[bot]@users.noreply.github.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.

4 participants