Welcome to the v2.4.0 release of containerd!
containerd 2.4 is a regular (non-LTS) release with a shorter support window,
intended for users who want to adopt new features sooner. As the release
following the 2.3 LTS, it is the point in the release cycle where previously
deprecated features may be removed, so this release may include breaking
changes; check the notes below and clear any deprecation warnings from your
current version before upgrading.
Users prioritizing stability and a longer support lifecycle should stay on the
2.3 LTS release.
Highlights
Container Runtime Interface (CRI)
- Enable mount manager for image mounts in CRI (#13542)
- Export sandbox image and CNI directory configuration in CRI plugin info (#13940)
- Set default runtimeFeatures.UserNamespacesHostNetwork to true (#13162)
- Support OCI runtime feature introspection for non-runc runtimes (#13504)
Image Distribution
- Apply hardening to strip sensitive authentication headers when fetching descriptor URLs (#12889)
- Support propagating HTTP 299 warning headers from registries to the resolver (#12698)
- Use klauspost/compress for gzip layer decompression (#13560)
Image Storage
- Add client options to fetch all layer content during unpack even when snapshots exist (#14126)
- Include media type in content create events (#13833)
- Add forward References to the GC collection context (#13634)
Node Resource Interface (NRI)
- Expose container image name, digest, and config digest to NRI plugins (#13960)
- Emit deprecation warnings for plugins using deprecated NRI interfaces (#13916)
Runtime
- Mask /proc/interrupts and CPU thermal throttle sysfs paths in Linux containers by default (#14090)
- Add UpdateSandbox RPC to propagate sandbox controller updates to the shim (#14105)
- Avoid immediately restarting containers with restart=always policy after they are explicitly stopped (#13993)
- Pass tracing context from shim to runc and hooks (#14036)
- Fix user and group lookup failures in container rootfs containing symlinked /etc/passwd or /etc/group (#13818)
- Implement Windows named-pipe server and log streaming support in pkg/shim (#13948)
- Enable log scrubbing by default on Windows (#13837)
- Allow specifying parent checkpoint directory when checkpointing with runc (#13699)
Snapshotters
- Add Prometheus metrics for EROFS snapshotter layer content cache (#13941)
- Support warm image cache for erofs snapshotter (#13813)
- Add max size label for snapshots (#13520)
Breaking
- Remove deprecated CRI and tracing configuration options:
- Remove
enable_cdiin CRI runtime configuration (CDI is now always enabled) - Remove
bin_dirin CRI CNI configuration (usebin_dirs) - Remove
endpoint,protocol, andinsecurein OTLP tracing processor configuration (use standard OTLP environment variables) - Remove
service_nameandsampling_ratioin internal tracing configuration (use standard OpenTelemetry environment variables) (#14166)
- Remove
- Remove restore in CreateContainer (#13871)
Deprecations
- Deprecate containerd.io/runtime-allow-mounts shim annotation in favor of MountCapabilities bootstrap extension (#14002)
- Remove deprecated shim.Command from pkg (#13991)
- Deprecate task API address and version fields in runc options and move to CreateTaskRequest (#13360)
Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.
Contributors
- Maksym Pavlenko
- Sebastiaan van Stijn
- Samuel Karp
- Derek McGowan
- Wei Fu
- Akihiro Suda
- Mike Brown
- Paweł Gronowski
- Chris Henzie
- Phil Estes
- Brian Goff
- Austin Vazquez
- ningmingxiao
- Jordan Liggitt
- Akhil Mohan
- Eshaan Mathur
- Krisztian Litkey
- Chris Ayoub
- Kazuyoshi Kato
- Kir Kolyshkin
- Sergey Kanzhelev
- Ahmet Alp Balkan
- Arpit Jain
- Cindy Li
- Damien Grisonnet
- Esteban Ginez
- Gao Xiang
- Harsh Rawat
- Laura Lorenz
- Maksim An
- Oleh Konko
- Philip Laine
- Abhishek Bhunia
- Alan Grosskurth
- Albin Kerouanton
- Alex Lyn
- Aman Raj
- Amir Alavi
- Amit Barve
- Andrew Halaney
- AprilNEA
- Arjun Yogidas
- Ayato Tokubi
- Aysha Afrah Ziya
- Ben Cressey
- Bing Hongtao
- Chris Crone
- Craig Gumbley
- Daniel De Graaf
- Davanum Srinivas
- Dr. Jan-Philip Gehrcke
- Harshal Patel
- Henry Wang
- Hsiu-Chi Tsai
- JP Phillips
- Jing Chen
- Kohei Tokunaga
- LEI WANG
- Martín Fernández
- Mikhail Dmitrichenko
- Nahum Litvin
- Nikolaus Schuetz
- Pablo Garcia Caceres
- Paco Xu
- Robert Cronin
- SaloniRathi
- Shambhavi Srivastava
- Tianon Gravi
- XlabAI
- Yuanliang Zhang
- ayush-panta
- crawfordxx
- cshung
- match man
- s3onghyun
- 归寂
- 徐晓伟
Changes
658 commits
647fafa847Prepare release notes for v2.4.0- Prepare release notes for api/v1.12.0 (#14170)
5c4ea21de3Prepare release notes for api/v1.12.0
- Deprecations and removals for 2.4 (#14166)
531b3a37b9tracing: remove deprecated tracing config optionsca8579a334tracing: add tests for otlp exporter and env varsee024b7c99tracing: remove deprecated otlp configsf7c654fb4fcri: remove deprecated cni bin_dir4f7de25abbcri: remove enable_cdi config option830b48d3fdcri: delay registry config removal to 2.7
- Prepare release notes for v2.4.0-rc.0 (#14115)
c02620e398Prepare release notes for v2.4.0-rc.002c7c97f43Update release doc for 2.4.0 release484e5aba58vendor: github.com/containerd/containerd/api v1.12.0-rc.167174d675cmailmap: add Paweł Gronowski
- Update erofs snapshotter to record blob source (#14107)
697a7571a4erofs: give a dm-verity device a name unique to its mountf75817eb3berofs: record where a layer blob isd92088d822erofs: refuse to apply into a read-only snapshot8cc0b076a6erofs: serve layer content cache on parented Prepare
- build(deps): bump the golang-x group with 4 updates (#14150)
75138b3fdabuild(deps): bump the golang-x group with 4 updates
- build(deps): bump github.com/klauspost/compress from 1.19.2 to 1.20.0 (#14153)
353342cae6build(deps): bump github.com/klauspost/compress from 1.19.2 to 1.20.0
- pkg/oci: mask thermal interrupt info (#14090)
c176f185b0pkg/oci: mask thermal interrupt info
- vendor: github.com/containerd/nri v0.12.3 (#14065)
69269c635bvendor: github.com/containerd/nri v0.12.3
- cri: only unmount image volumes when mounting fails (#14143)
d13064937ecri: only unmount image volumes when mounting fails
- migrate to github.com/urfave/cli/v3 (#14095)
f72829f36bmigrate to github.com/urfave/cli/v3
- shim-runc-v2: record exit status in bundle (#14113)
3264a09dffshim-runc-v2: record exit status in bundle
- core/unpack: fetch layers of every config-sharing manifest (#13966)
3c5d9fefd8core/unpack: fetch layers of every config-sharing manifest
- time to update cri-tools to v1.37.0 (#14133)
5c957005abadding container_threads metric emission for cgroups v1d038c4f1f9time to update cri-tools to v1.37.0
- update crun to v1.29.1 (#14136)
64d7857d2bupdate crun to v1.29.1
- vendor: github.com/containerd/log main, use log.Level consts for log-levels (#14019)
b178103a4fuse log.Level consts for log-levelsa77089ba8evendor: github.com/containerd/log v0.2.00ca704384fvendor: github.com/containerd/log/otel v0.1.0
- vendor: github.com/moby/sys/userns v0.2.1 (#14130)
f30398314fvendor: github.com/moby/sys/userns v0.2.1
- cri: enable mount manager for image mounts (#13542)
9224f17d7ccri: enable mount manager for image mounts
- Fix input mutation in mount option helpers (#13433)
165abaf8fdcore/mount: Keep lazy copy for filtered options674c3a1acbcore/mount: Return copied filtered mount options79455dd4b0mount: share lazy option filteringb73b82f2afmount: fix shallow copy of Options in RemoveVolatileOption and RemoveIDMapOption70cfd7796amount: fix input mutation in readonlyMounts35e919f329mount: replace copyMounts with slices.Clone
- cmd: refactor in preparation of urfave/cli/v3 migration (#14103)
861dc7ed7acmd: commands.NewClient: explicitly pass context324866a884cmd: commands.AppContext: explicitly pass contextbd954e4e2ccmd: initialize CLI apps with struct literalsba71234151cmd: rename cliContext -> cmd in preparation of v3 migrationde193f2059cmd: edit: pass editor name instead of cli.Context2cc86cb07bcmd: rename some vars that shadowede6be784a71cmd: use urfave/cli RunContext4d13856983cmd: remove redundant empty slice flag values211cde9039cmd: remove uses of urfave/cli.Commandsc52e77eccdcmd/ctr: remove unused pluginCmds
- unpack: Add opt-in fetching for existing snapshots (#14126)
2b0302fd85unpack: Add opt-in fetching for existing snapshots
- integration/client: fix TestContainerExecLargeOutputWithTTY (#14120)
68f92da9fbintegration/client: fix TestContainerExecLargeOutputWithTTY
- vendor: github.com/go-jose/go-jose/v4 v4.1.5 (security) (#14116)
0c4981cc2evendor: github.com/go-jose/go-jose/v4 v4.1.5
- Revert "metadata: bound snapshotter Remove during garbage collection" (#14119)
aeb095b175Revert "metadata: bound snapshotter Remove during garbage collection"
- build(deps): bump azure/login from 3.0.1 to 3.0.2 (#14114)
2bfdafac7bbuild(deps): bump azure/login from 3.0.1 to 3.0.2
- pkg/tracing: deprecate Logrushook in favor of log/otel.Logrushook (#14023)
20fed5179apkg/tracing: deprecate Logrushook in favor of log/otel.Logrushook
- sandbox: wire Controller.Update through to the shim (#14105)
b971bac19fdocs: document optional sandbox updates40f84371c6vendor: update containerd api2ea4ddb32fsandbox: add UpdateSandbox RPC and forward Controller.Update to the shim
- vendor: golang.org/x/crypto v0.56.0 (#14093)
977cb4bb0avendor: golang.org/x/crypto v0.56.08dd0970b3cMerge commit from forkff39a97236cri: cancel ExecSync IO drain on context cancellation65dcc83dadMerge commit from forke6ca378dcfarchive: skip redundant opaque whiteout walks
- vendor: tags.cncf.io/container-device-interface v1.1.1 (#14109)
d1b8275dc2vendor: tags.cncf.io/container-device-interface v1.1.1
- vendor: bump go-cni v1.1.14 and containernetworking/cni v1.3.1 (#14104)
9ca93e5488vendor: bump go-cni v1.1.14 and containernetworking/cni v1.3.1
- Update Go 1.26.8 and 1.27.1 (#14087)
db128f8955Update to go1.27.1f257e6b98cUpdate go1.26 to go1.26.843f85c6b53Update go1.26 to go1.26.7
- gha: Update golangci-lint to v2.13.2 (#14089)
3c10e5f0beall: Address G702 command execution findings7797833d8egha: Update golangci-lint to v2.13.22e587fd358ctr: Use context-aware pprof dialinga0ea6a138bruntime: Preserve context values in background goroutines2c75374a2fall: Use slices.Backward for reverse iterationb7ae26eea7all: Use errors.AsType
- runtime: invoke shim.Delete when connection is closed (#13309)
e49a475d4aruntime: invoke shim.Delete when connection is closed
- Fix data races and a deadlock in the byte stream helpers (#14085)
3914a449d4Fix data races and a deadlock in the byte stream helpers
- erofs: enable fsview fallback for unsupported features (#14077)
9d804de10berofs: enable fsview fallback for unsupported features
- all: fix typos in code comments (#14082)
93b0eea04ball: fix typos in code comments
- fix: fix incorrect restart=always restart logic (#13993)
452b4d99ccfix: fix incorrect restart=always restart logic
- add additional tests for toCriSignal contract (#14073)
961764f6b2test toCriSignal contract for metadata pre SIGNAL_ prefix
- build(deps): bump docker/setup-buildx-action from 4.2.0 to 4.3.0 in the docker-actions group (#14067)
6512b4caf1build(deps): bump docker/setup-buildx-action in the docker-actions group
- build(deps): bump azure/login from 3.0.0 to 3.0.1 (#13964)
59f415c7d6build(deps): bump azure/login from 3.0.0 to 3.0.1
- cri: trace image pull result attributes (#13959)
09997c13a4cri: trace image pull result attributes
- internal/cri/server: avoid debug log formatting for container spec (#13972)
30cd464708internal/cri/server: avoid debug log formatting for container spec
- build(deps): bump github.com/google/certtostore from 1.0.6 to 1.0.7 (#13919)
f07b18490bbuild(deps): bump github.com/google/certtostore from 1.0.6 to 1.0.7
- vendor: github.com/docker/go-events v0.1.0 (#14064)
5333ee0952vendor: github.com/docker/go-events v0.1.0
- chore(deps): go.opentelemetry.io/otel v1.46.0, contrib v0.71.0 (#14058)
bfe115abe8chore(deps): go.opentelemetry.io/otel v1.46.0, contrib v0.71.0
- vendor: tags.cncf.io/container-device-interface 73444d1f71f2 (#14060)
ea60594619vendor: tags.cncf.io/container-device-interface 73444d1f71f2
- plugins: remove some stray logrus imports (#14057)
b845501327plugins: remove some stray logrus imports
- snapshots/erofs: advertise the erofs OS feature from the snapshotter plugin (#14012)
988f113ab7snapshots/erofs: test the advertised erofs feature platform5e083f8d43erofs: advertise the erofs OS feature platform from the snapshotter
- build(deps): bump github.com/prometheus/client_golang from 1.24.0 to 1.24.1 (#13883)
5e89a2c119build(deps): bump github.com/prometheus/client_golang
- Prepare api/v1.12.0-rc.0 release (#14047)
d767f44b52Prepare api/v1.12.0-rc.0 release
- update kubernetes to v1.37.0 (#14051)
67336d701dmodifies criSignalToOCIStopSignal to remove the extra cri SIGNAL_ prefixes00ecad3d7aresolve lint issue upstreamcri.NewRemoteImageService() is deprecatedee09726316fix for cri api Signal_ to Signal_SIGNAL_52be09ef1cupdate kubernetes to v1.37.0
- Pass tracing context from shim to runc and hooks (#14036)
0b4ed79573integration: add e2e test to verify trace context propagation5c25750dd5shim: propagate trace context to runc and OCI hooksbeb23bc68dvendor: add go.opentelemetry.io/contrib/propagators/envcar v0.70.0
- runtime: make task.Delete API retriable (#14020)
24dc6900ecruntime: make task.Delete API retriable
- vendor: google.golang.org/grpc v1.83.2 (#14042)
89ba8063e1vendor: google.golang.org/grpc v1.83.2
- vendor: tags.cncf.io/container-device-interface 04278701a635 (#14043)
ab451b6de8vendor: tags.cncf.io/container-device-interface 04278701a635
- Shim mount handler protocol (#14002)
fbd9f37c2ddocs: document the transform suffix ruleaedbd24669docs: document the shim mount capability1ff0c13859runtime/v2: migrate early adopters of the deprecated annotationd3cc320650runtime/v2: propagate shim mount capabilities to sandbox memberse8963fc32bruntime/v2: negotiate mount capabilities from shim bootstrap0b641f0099mount: honor a claimed transform as a chain suffix8ba69faf06mount: extract activation planning00967ecf03mount: add WithAllowTransform activate option6d9307f346runtime/v2: decode the whole bootstrap result from JSON65b4eb916evendor: use local api module and update vendored apia72247425bapi: add shim mount capabilities329998caa9runtime/v2: remove the runtime-allow-mounts annotation
- vendor: github.com/docker/go-metrics v0.1.0 (#14041)
b44bea515cvendor: github.com/docker/go-metrics v0.1.0
- chore(api): update github.com/sirupsen/logrus v1.10.2 (#14037)
a28910b14fchore(api): update github.com/sirupsen/logrus v1.10.2
- Update CI to include Go 1.27 (#14033)
8d32443320Update CI to include Go 1.27
- vendor: github.com/containerd/go-runc v1.2.1 (#14038)
704ca21342vendor: github.com/containerd/go-runc v1.2.1
- erofs: instrument warm up cache (#13941)
81c272b28derofs: instrument the layer content cache and applies
- Remove shim.Command form pkg (#13991)
55c39f2516Move shim.Command to runtime
- pkg/tracing: handle error and typed-nil Stringer attributes (#14013)
442969ef0epkg/tracing: handle error and typed-nil Stringer attributes
- docker fetcher: strip sensitive headers on descriptor URLs (#12889)
51cf999e92core/remotes/docker: normalize descriptor URL origins5b3ce72589core/remotes/docker: strip sensitive headers on desc.urls fetch
- metadata: bound snapshotter Remove during garbage collection (#13799)
a9d5caf7fcmetadata: bound snapshotter Remove during garbage collection
- build(deps): bump github.com/checkpoint-restore/checkpointctl from 1.5.0 to 1.6.0 (#14009)
64f05273e3build(deps): bump github.com/checkpoint-restore/checkpointctl
- build(deps): bump github.com/moby/sys/userns from 0.1.0 to 0.2.0 in the moby-sys group (#14008)
0880064deabuild(deps): bump github.com/moby/sys/userns in the moby-sys group
- build(deps): bump the k8s group across 1 directory with 2 updates (#14007)
b86bc4be52build(deps): bump the k8s group across 1 directory with 2 updates
- Bump go-runc to 1.2.0 (#14006)
10cf7114e6Bump go-runc to 1.2.0
- vendor: tags.cncf.io/container-device-interface 05ae4b5bb730 (#14004)
1448bcd8f0vendor: tags.cncf.io/container-device-interface 05ae4b5bb730
- build(deps): bump actions/attest-build-provenance from 4.1.1 to 4.2.2 (#13965)
0db88d7f83build(deps): bump actions/attest-build-provenance from 4.1.1 to 4.2.2
- internal/cri/server: remove remaining uses of k8s.io/utils (#14003)
10e82fac8dinternal/cri/server: remove remaining uses of k8s.io/utils
- vendor: github.com/sirupsen/logrus v1.10.1 (#13294)
f511928a11vendor: github.com/sirupsen/logrus v1.10.1
- vendor: github.com/containerd/platforms v1.0.0-rc.5 (#14001)
0d797891bbvendor: github.com/containerd/platforms v1.0.0-rc.5
- vendor: github.com/stretchr/testify v1.12.1 (#13973)
c351cf4682vendor: github.com/stretchr/testify v1.12.1
- internal/cri/server/events: use testing/synctest (#13997)
f7e8f30a05internal/cri/server/events: use testing/synctest
- pkg/shim: Report bootstrap API mismatch on startup (#13910)
85385a4c33pkg/shim: Report bootstrap API mismatch on startup
- internal/cri/bandwidth: remove dead code (#13996)
fcb54dc5fainternal/cri/bandwidth: remove dead code
- pkg/oci: resolve rootfs symlinks for user lookup (#13818)
a8fc3a0172pkg/oci: resolve rootfs symlinks for user lookup
- Revert "add check on version of drop in configs" (#13939)
c8da81e49bensure that the final config version is the higest in the config lista8ed546687Revert "add check on version of drop in configs"
- shim: use PublisherOpts when creating new publisher (#13989)
014e20a87fshim: apply PublisherOpts
- script/setup: update critools to v1.36.0 (#13992)
920978fd61script/setup: update critools to v1.36.0
- build(deps): bump github.com/klauspost/compress from 1.19.1 to 1.19.2 (#13962)
da7420a420build(deps): bump github.com/klauspost/compress from 1.19.1 to 1.19.2
- update runhcs to v0.15.0-rc.4 (#13984)
4ad9d13181update runhcs to v0.15.0-rc.4
- vendor: github.com/Microsoft/hcsshim v0.15.0-rc.4 (#13985)
972ef71c84vendor: github.com/Microsoft/hcsshim v0.15.0-rc.46e6518a155vendor: go.opentelemetry.io/otel v1.45.0, go.opentelemetry.io/contrib v0.70.09023b7eb12vendor: google.golang.org/protobuf v1.36.12ee2255275bvendor: google.golang.org/genproto/* 6ac0973c030d389f75a955vendor: google.golang.org/grpc v1.83.1444ecd0be0vendor: github.com/go-logr/logr v1.4.426c040fb40vendor: github.com/felixge/httpsnoop v1.1.0d1df90fb51vendor: golang.org/x/mod v0.40.0e994dd627avendor: golang.org/x/net v0.58.04fb52e086cvendor: golang.org/x/crypto v0.55.099178d1e2evendor: golang.org/x/text v0.41.0f6b36c43afvendor: golang.org/x/mod v0.39.0
- cri, nri: record resolved image name and digest in container metadata (#13960)
203578e2ebcri,nri: record resolved image name and digest in container metadata8c4ccd2984build: bump github.com/containerd/nri
- Export config in CRI plugin (#13940)
93f38adbcaExport config in CRI plugin
- runtime: invoke Shutdown after every task deletion (#13958)
402eb3166eruntime: invoke Shutdown after every task deletion
- implement Windows support for the shim server (#13948)
3bb3d8b7c6address copilot comments983dcf4987[pkg/shim] Implement Windows-specific unimplemented methods
- fix(runtime): apply load timeout to load shim (#13954)
fd29ff1073fix(runtime): bound shim loading with the load timeout
- Update Go to 1.26.6 (#13957)
b665fde220Update Go to 1.26.6
- cri: add tracing spans for image pull and sandbox setup paths (#12628)
0d8883b6dcclient: trace image pull stages
- ctr: drain exec output before cleanup (#13931)
3778cc36f4ctr: drain exec output before cleanup
- snapshots/erofs: protect snapshot staging from cleanup (#13932)
e940b5ac18snapshots/erofs: protect snapshot staging from cleanup
- build(deps): bump docker/login-action from 4.4.0 to 4.6.0 in the docker-actions group across 1 directory (#13886)
3dd83f6774build(deps): bump docker/login-action
- build(deps): bump the codeql-actions group with 3 updates (#13922)
cd9113b9d5build(deps): bump the codeql-actions group with 3 updates
- build(deps): bump actions/stale from 10.4.0 to 11.0.0 (#13923)
c013c7df4dbuild(deps): bump actions/stale from 10.4.0 to 11.0.0
- nri,deprecation: record and emit warnings for NRI deprecations. (#13916)
bf0111a9ccnri,deprecation: emit warnings for old NRI plugins.
- Add more context to the shim delete error (#13912)
29058e6501Add more context to the shim delete error
- Remove dependency on
github.com/opencontainers/runtime-tools(#13519)e01c004cc6Remove dependency ongithub.com/opencontainers/runtime-tools
- Set the default of runtimeFeatures.UserNamespacesHostNetwork to true (#13162)
a909c305c4Set the default of runtimeFeatures.UserNamespacesHostNetwork to true
- docs: update erofs docs (#13907)
0d21db6bf5docs: reflow the erofs tar index mode sectiona23e4a127adocs: document the erofs layer content cache
- unpack: don't drop topHalf errors in parallel mode (#13902)
a35da471f3unpack: don't drop topHalf errors in parallel mode
- cri: fix container_start_time_seconds unit conversion (#13897)
71bc89b288cri: fix container_start_time_seconds unit conversion
- remotes/docker: Propagate registry warnings to the resolver (#12698)
80975e2c75remotes/docker: Propagate registry warnings to resolver
- bump selinux to v1.15.1, use SetProcessKind (#13395)
ba3a464b8dbump oc/selinux to v1.15.1, use SetProcessKind4167499888deps: bump oc/selinux to v1.14.1
- erofs: allow multiple cache directories (#13900)
7df6bb0a67erofs: allow multiple layer content cache directories
- Update api version to v1.12.0-beta.0 (#13906)
a272df5685Update api version to v1.12.0-beta.0
- build(deps): bump the codeql-actions group with 3 updates (#13885)
406c8dc44abuild(deps): bump the codeql-actions group with 3 updates
- Prepare release notes for api/v1.12.0-beta.0 (#13899)
0ff04dc3f7Prepare release notes for api/v1.12.0-beta.0
- erofs: enable parallel unpack with content cache (#13826)
257a5900b0core/unpack: detect staged layers via read-only mounts1e001e6dfeerofs: make the layer content cache work with parallel unpack
- cri: skip failed container instead of dropping entire sandbox metrics (#13896)
34524e8a68cri: skip failed container instead of dropping entire sandbox metrics
- ctr: register EROFS fsview (#13891)
0d37ad2683ctr: register EROFS fsview
- Prepare release notes for v2.4.0-beta.0 (#13865)
f46e608b9bPrepare release notes for v2.4.0-beta.0
- cri: remove restore in CreateContainer (#13871)
91be73ba62cri: remove restore in CreateContainer
- integration: build the whiteout-test image locally (#13735)
f418688f2cintegration: build the whiteout-test image locally
- docs/security: update security report triage criteria (#13873)
fdf814c21adocs/security: update security report triage criteria
- snapshots/erofs: keep lowers stacked above a merged fsmeta (#13860)
01f5087866snapshots/erofs: keep lowers stacked above a merged fsmeta
- build(deps): bump github.com/containerd/imgcrypt/v2 from 2.0.2 to 2.0.3 (#13862)
fbbe206722build(deps): bump github.com/containerd/imgcrypt/v2 from 2.0.2 to 2.0.3
- workflows/stale: exempt priority and status labels (#13869)
565606decfworkflows/stale: exempt priority and status labels
- cri: deprecate restore in CreateContainer (#13838)
a3f99ba690cri: deprecate restore in CreateContainer
- internal/oom: Fix memory leak by removing watcher from map on Stop (#13856)
7f9455628ainternal/oom: Fix memory leak by removing watcher from map on Stop
- build(deps): bump github.com/klauspost/compress from 1.19.0 to 1.19.1 (#13861)
7fdc69ca0cbuild(deps): bump github.com/klauspost/compress from 1.19.0 to 1.19.1
- build(deps): bump github.com/prometheus/client_golang from 1.23.2 to 1.24.0 (#13863)
af9ded8e88build(deps): bump github.com/prometheus/client_golang
- build(deps): bump the codeql-actions group with 3 updates (#13864)
ef89efe0d0build(deps): bump the codeql-actions group with 3 updates
- ci: dependabot: group docker/* and codeql action updates (#13847)
069df6c325ci: dependabot: group docker/* and codeql action updates
- Use ScrubLogs by default on Windows (#13837)
18a01c0020ctr: add --scrub-logs flag for Windowsf4e7944625cri/config: use ScrubLogs by default on Windows
- pkg/epoch: reject negative SOURCE_DATE_EPOCH values (#13817)
41f6f0e877pkg/epoch: reject negative SOURCE_DATE_EPOCH values
- build(deps): bump actions/checkout from 7.0.0 to 7.0.1 (#13844)
4fa23707c8build(deps): bump actions/checkout from 7.0.0 to 7.0.1
- build(deps): bump google.golang.org/grpc from 1.82.0 to 1.82.1 (#13842)
c8fdb63ea1build(deps): bump google.golang.org/grpc from 1.82.0 to 1.82.1
- core/runtime/v2: Drop checkpointctl module dependency (#13839)
9c6b71c95ccore/runtime/v2: Drop checkpointctl module dependency
- Include media type in content create event (#13833)
a452c2e230Include media type in content create event
- build(deps): bump github.com/fsnotify/fsnotify from 1.9.0 to 1.10.1 (#13343)
b1085e19b7build(deps): bump github.com/fsnotify/fsnotify from 1.9.0 to 1.10.1
- cri: add streaming RPCs (#13187)
47c7085d22cri: add streaming RPCs
- Handle []byte envvar value for CRI (#13453)
b824ddc0b5Handle []byte envvar value78abbfb7f7update to v0.36.x kubernetes dependencies
- build(deps): bump github.com/erofs/go-erofs from 0.3.0 to 0.3.1 (#13820)
6e4c6acc0dbuild(deps): bump github.com/erofs/go-erofs from 0.3.0 to 0.3.1
- shim_load: Consider shim leaked only if we can't find pids (#13790)
54a5a606cbshim_load: Consider shim leaked only if we can't find pids
- Fix flaky CI on windows (#13827)
dd654ecca0Fix does not contain \x00 on windows5c620e984fFix NET/network CI failure on Windows
- build: bump github.com/containerd/nri (#13812)
5d35f9ef97build: bump github.com/containerd/nri
- build(deps): bump golang.org/x/net from 0.51.0 to 0.55.0 in /api (#13819)
52c5f1f64ebuild(deps): bump golang.org/x/net from 0.51.0 to 0.55.0 in /api
- docs: correct default for [debug] address (#13821)
1a7d78e0b9docs: correct default for [debug] address
- Support warm image cache for erofs snapshotter (#13813)
82a47efe92Support dmverityf52e748f16ctr: add build-erofs-cache to populate the erofs layer cache728093bdcasnapshots/erofs: source pre-converted layers from a content cache
- docs: add threat model and triage guide (#12942)
3a3eddcbf9docs: add threat model and triage guide
- build(deps): bump golang.org/x/mod from 0.37.0 to 0.38.0 in the golang-x group (#13806)
9ead7c087dbuild(deps): bump golang.org/x/mod in the golang-x group
- build(deps): bump actions/attest-build-provenance from 4.1.0 to 4.1.1 (#13688)
43866c6a3fbuild(deps): bump actions/attest-build-provenance from 4.1.0 to 4.1.1
- fsmount: Fix selinux mount parameter parsing (#13754)
dd2bcfc643fsmount: Fix selinux mount parameter parsing
- build(deps): bump github/codeql-action/upload-sarif from 4.36.2 to 4.37.0 (#13810)
624c8e85bdbuild(deps): bump github/codeql-action/upload-sarif
- build(deps): bump docker/setup-buildx-action from 4.1.0 to 4.2.0 (#13765)
51355849a7build(deps): bump docker/setup-buildx-action from 4.1.0 to 4.2.0
- build(deps): bump docker/login-action from 4.2.0 to 4.4.0 (#13772)
a9bb893ecbbuild(deps): bump docker/login-action from 4.2.0 to 4.4.0
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.2 to 2.4.3 (#13807)
10e0d68a94build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.2 to 2.4.3
- build(deps): bump actions/stale from 10.3.0 to 10.4.0 (#13811)
a4b1e9a44bbuild(deps): bump actions/stale from 10.3.0 to 10.4.0
- README: remove Go Report Card badge (#13741)
5de7b675c6README: remove Go Report Card badge
- overlay: don't override a configured index mount option (#13805)
5e25f36e5eoverlay: don't override a configured index mount option
- core/mount/manager: improve TestMkdirHandler failure messages (#13800)
807fbc13dccore/mount/manager: improve TestMkdirHandler failure messages
- core/runtime/v2: Preserve protobuf shim response bytes (#13801)
dac4ea43f3core/runtime/v2: Preserve protobuf shim response bytes
- Run CI against dev branches (#13748)
6c438b0479Run CI against dev branches
- Raise stale bot limits (#13780)
12f6a4d585Raise stale bot limits
- pkg/archive: reject out-of-range device numbers in layer headers (#13792)
0205398ac2pkg/archive: reject out-of-range device numbers in layer headers
- blockcim config and plugin initialization changes (#13469)
5ae5d993e6use IsBlockCimWriteSupported for block CIM plugin init checks8fbeab28d2Fix incorrect default config value for block CIM snapshotter
- update runc to v1.5.1 (#13791)
21efcf19a4update runc to v1.5.1
- ci: bound Go fuzzing by execution count (#13757)
c1b9b78f47ci: bound Go fuzzing by execution count
- Introspect OCI runtime features for non-runc runtimes (#13504)
fd7819bcb7fix(cri): introspect OCI runtime features for non-runc runtimes
- build(deps): bump github.com/klauspost/compress from 1.18.6 to 1.19.0 (#13768)
61a70e7ef2build(deps): bump github.com/klauspost/compress from 1.18.6 to 1.19.0
- build(deps): bump the golang-x group across 1 directory with 2 updates (#13766)
d5657dbf64build(deps): bump the golang-x group across 1 directory with 2 updates
- build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.0 (#13767)
bfae6f3513build(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.0
- build(deps): bump github.com/containerd/ttrpc to v1.2.9 (#13740)
658a1c78b5build(deps): bump github.com/containerd/ttrpc to v1.2.9
- CI: migrate Vagrant to Lima (#13728)
a42b09aaa6CI: migrate Vagrant to Lima
- RELEASES.md: mark 2.1 EOL and update latest 1.7/2.0/2.1/2.2/2.3 tags (#13739)
617944babeRELEASES.md: mark 2.1 EOL and update latest 1.7/2.0/2.1/2.2/2.3 tags
- remotes: surface OCI error body in registry 4xx responses (#13547)
5c66703ee3remotes: surface OCI error body on HEAD 403 via GET fallback
- Disable checkpoint restore codepath when CRIU is not installed (#13664)
81350a5d9agithub/workflows: install criu in node-e2e06495733b2cri: add enable_criu configuration option186397511bcri: validate CRIU availability and version early
- Update go to 1.26.5 (#13725)
2b017f12b5Update go to 1.26.5
- feat: add loong64 (LoongArch) build support (#13642)
48c841fe2dfeat: add loong64 (LoongArch) build support
- Add dockerfile for the whiteout-test test image (#13704)
cb3c0f0665Add dockerfile for the whiteout-test test image
- build(deps): bump actions/cache from 5.0.5 to 6.1.0 (#13687)
ee7e56cac7build(deps): bump actions/cache from 5.0.5 to 6.1.0
- *: disable bbolt stat usage (#13721)
0b7466980e*: disable bbolt stat usage
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.1 to 2.4.2 (#13672)
fb80dbbf94build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.1 to 2.4.2
- pkg/kernelversion: fix linting and sync with upstream (#13701)
296f917d5dpkg/kernelversion: update links to upstream sourcec45f911980pkg/kernelversion: simplify code with sync.OnceValues5e3e05aec7pkg/kernelversion: fix minor linting issues762b89ceebpkg/kernelversion: use unix.ByteSliceToString for utsname fields
- Update stale PR policy (#13716)
4f9bae6776Update stale PR policy
- ci: pin fog-json to resolve gem conflict (#13707)
84112c78c1ci: pin fog-json to resolve gem conflict
- cri: auto-add prefix for pause image (#13513)
c7d4057d47cri: auto-add prefix for pause image
- gha: pin remaining actions and apply hardening from zizmor (#13597)
0f18307820gha: quote some values0274924d74gha: remove uses of "read-all" permissions072a34d648gha: suppress zizmor warning for intentionally un-pinned workflows9f0bb640cegha: apply zizmor fixes8722c46313gha: buf-breaking: pin actions by sha
- Add parent path to runc checkpoint options (#13699)
ea0ed51e21shim: allow specifying runc's --parent-path during checkpointing
- Fix nil pointer dereference in NRI GetIPs (#13683)
c2dae310afFix nil pointer dereference in NRI GetIPs
- Set SystemTemp env var to config temp on Windows (#13667)
faff4d66baSet SystemTemp env var to config temp on Windows
- update runhcs to v0.15.0-rc.3 (#13691)
7c9c25d649update runhcs to v0.15.0-rc.3
- build(deps): bump github.com/Microsoft/hcsshim from 0.15.0-rc.1 to 0.15.0-rc.3 (#13690)
d763407d4abuild(deps): bump github.com/Microsoft/hcsshim
- Use klauspost/compress/gzip for decode (#13560)
d8f13bf4ccpkg/archive/compression: use klauspost/compress/gzip for decode
- cri: route sandbox stats through Controller.Metrics (#13312)
749d8fbe45Use metric timestamp for sandbox stats samplese8dbd24ac5cri: route stats collector's sandbox path through Controller.Metrics309aaba2a5cri: route sandbox stats through Controller.Metrics
- docs: point runtime to updated errdefs pkg (#13410)
668e0681a4docs: point runtime to updated errdefs pkg
- : increase fuzz test time to 60s (#13677)
2121a44ce7Increase fuzz timeout to 60s
- build(deps): bump github.com/moby/sys/user from 0.4.0 to 0.4.1 in the moby-sys group across 1 directory (#13670)
6079844daebuild(deps): bump github.com/moby/sys/user
- snapshots/devmapper: avoid nil status deref after mkfs failure (#13633)
5e38aadc53snapshots/devmapper: avoid nil status deref after mkfs failure
- pkg/archive: remove redundant github.com/moby/sys/sequential dependency (#13675)
35f753cc44pkg/archive: remove redundant github.com/moby/sys/sequential dependency
- pkg/oci: update TestOpenUserFileCapsReads to use newlined data (#13674)
7a7aebfcbfpkg/oci: update TestOpenUserFileCapsReads to use newlined data
- cri: exclude cached layer bytes from image_pulling_throughput_mibps (#13245)
16ff70b861cri: add image_pulling_throughput_mibps and deprecate image_pulling_throughput1755053a78cri: exclude cached layer bytes from image_pulling_throughput
- RELEASES: document platform support policy (#13655)
d0b3819495RELEASES: document platform support policy
- update runc to v1.5.0 (#13673)
8f2bbc77a4update runc to v1.5.0
- fix snapshotter variable check in ContainerWithCheckpoint (#13482)
57fca66a60[Bugfix] fix snapshotter variable check in ContainerWithCheckpoint
- build(deps): bump actions/checkout from 6 to 7 (#13648)
38aaa269c7build(deps): bump actions/checkout from 6 to 7
- cri: fix duplicated image env vars on checkpoint import (#13623)
6a677e0fd6cri: fix duplicated image env vars on checkpoint import
- cri: reject CreateContainer when sandbox is not running (#13654)
ae30a5cad2cri: reject CreateContainer when sandbox is not running
- build(deps): bump github.com/mdlayher/vsock from 1.2.1 to 1.3.0 (#13493)
3fdb9abcabbuild(deps): bump github.com/mdlayher/vsock from 1.2.1 to 1.3.0
- build(deps): bump github.com/intel/goresctrl from 0.12.0 to 0.13.0 (#13527)
787bb3da64build(deps): bump github.com/intel/goresctrl from 0.12.0 to 0.13.0
- oci: use path.Join to fill CgroupsPath (#13661)
51e3a8f4aboci: use path.Join to fill CgroupsPath
- build(deps): bump github.com/moby/sys/sequential from 0.6.0 to 0.7.0 in the moby-sys group across 1 directory (#13557)
ef32a6c8acbuild(deps): bump github.com/moby/sys/sequential
- Register tracing log hook before signal handling (#13411)
125c15bcd0Register tracing log hook before signal handling
- content: handle sharing violations on Windows (#13329)
a26143af1econtent: handle sharing violations on Windows
- update runhcs to v0.15.0-rc.2 (#13659)
ceee91ff5aupdate runhcs to v0.15.0-rc.2
- build(deps): bump go.etcd.io/bbolt from 1.4.3 to 1.5.0 (#13649)
7f3f8fffddbuild(deps): bump go.etcd.io/bbolt from 1.4.3 to 1.5.0
- cri: don't leak the new mount if mutateImageMount() fails (#13656)
a88ce40fd1cri: don't leak the new mount if mutateImageMount() fails
- build(deps): bump softprops/action-gh-release from 3.0.0 to 3.0.1 (#13650)
d568ae9cb5build(deps): bump softprops/action-gh-release from 3.0.0 to 3.0.1
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.3.1 to 2.4.1 (#13651)
f407302babbuild(deps): bump github.com/pelletier/go-toml/v2 from 2.3.1 to 2.4.1
- docs: fix duplicated word in NRI guide (#13618)
59ccb0029bdocs: fix duplicated word in NRI guide
- Add forward References to the GC collection context (#13634)
4be39f13f4core/metadata: add forward References to the GC collection context
- integration: add http trace for debug (#13518)
3d80ce2881integration: add http trace for debug
- test: fix flaky image timestamp check on coarse clocks (#13588)
e5e2190886test: fix flaky image timestamp check on coarse clocks
- core/content/proxy: Convert reader errors to native errdefs (#13585)
d58c2c1aa4core/content/proxy: Convert reader errors to native errdefs
- Patches (#13626)
a0086cfceeMerge commit from fork861ffc1097cri: filter CDI annotations on checkpoint restore432a7af299Merge commit from fork0c0918fa8fcri: do not re-tag restored checkpoints3977106b53Merge commit from fork8196411f24cri: make checkpoint restore robust to unexpected archive content5a91c99584Merge commit from fork7b05ec421dBound user-database file reads in openUserFilea834385de9Merge commit from fork0ec1af4caeDo not propagate reserved labels from image configs
- erofs: align default mkfs block size across platforms (#13624)
773d3517dderofs: align default mkfs block size across platforms
- fix(shim/windows): retry on winio.ErrTimeout in awaitPipeReady (#13536)
be3fcf33e8fix(shim/windows): retry on winio.ErrTimeout in awaitPipeReady
- vendor: golang.org/x/crypto v0.53.0 (#13600)
9838a323edvendor: golang.org/x/crypto v0.53.0
- update runc binary to v1.4.3 (#13590)
ebef5893ccupdate runc binary to v1.4.3
- core/proxy: Convert stream proxy errors to native errdefs (#13586)
d3c143e8b4core/proxy: Convert stream proxy errors to native errdefs
- build(deps): bump the golang-x group with 3 updates (#13556)
719088fbaabuild(deps): bump the golang-x group with 3 updates
- resolver: retry on transient network errors (#13323)
20af2e324aresolver: retry on transient network errors
- update go to 1.26.4 (#13575)
3c37ceee46update go to 1.26.4
- Update to current setup-go version (#13516)
80b3fe5c78Update to current setup-go version
- build(deps): bump github/codeql-action from 4.36.0 to 4.36.2 (#13555)
dfb00c4770build(deps): bump github/codeql-action from 4.36.0 to 4.36.2
- Configure udevd children-max for root-test (#13562)
4adafdf7e1Configure udevd children-max for root-test
- Add defer in event of mid-function failures in RunPodSandbox to avoid mount leaks (#13399)
2b2b80f558Add deferred call to ShutdownSandbox to avoid leaks
- Upload crash artifacts from go test -fuzz when failed (#13503)
0ffe456f1egithub: upload crash artifacts from go test -fuzz
- Use intermediate env variables for bash script runners in github workflows (#13434)
d5b1a69daeUse intermediate env variables for bash script runners
- Add max size label for snapshots (#13520)
f2b7791b23Add max size label for snapshots
- CI: update Fedora to 44 (#13525)
e37dfad050CI: update Fedora to 44
- remotes: close fetch reader immediately on EOF (#13438)
45cc0c578eintegration: use streaming Read in test mirror limitera989093a9cremotes: close fetch reader immediately on EOF
- cri: reset pull progress timer on idle→active transition (#13304)
6c396d050dcri: reset pull progress timer on idle→active transition
- runc-shim: don't hold the service lock across runc create (#13483)
dbcaa504c6runc-shim: don't hold the service lock across runc create
- integration: deflake TestFailFastWhenConnectShim (#13471)
a9fba66231integration: deflake TestFailFastWhenConnectShim
- Resurrect 2.1 branch for a short period (#13498)
660e411a3aResurrect 2.1 branch for a short period
- build(deps): bump the otel group across 1 directory with 8 updates (#13495)
de9dcf6aa6build(deps): bump the otel group across 1 directory with 8 updates
- Update typeurl/v2 to v2.3.0 to drop gogo dependency (#13490)
ce39143249Update typeurl/v2 to v2.3.0 to drop gogo dependency
- build(deps): bump google.golang.org/grpc from 1.81.0 to 1.81.1 (#13428)
8f3c916a76build(deps): bump google.golang.org/grpc from 1.81.0 to 1.81.1
- cri: skip pause image pull for shim sandboxer (#13424)
8f7c7fb447cri: skip pause image pull for non-podsandbox sandboxers
- Vagrantfile: update DNF cache (#13487)
8ef3b6a12bVagrantfile: update DNF cache
- build(deps): bump docker/login-action from 4.1.0 to 4.2.0 (#13476)
4939e073d5build(deps): bump docker/login-action from 4.1.0 to 4.2.0
- core/runtime/v2: fix race on Windows deferredPipeConnection.c in Read (#13462)
88af11e081core/runtime/v2: fix race on Windows deferredPipeConnection.c in Read
- build(deps): bump the k8s group across 1 directory with 6 updates (#13427)
f19f84cfe0build(deps): bump the k8s group across 1 directory with 6 updates
- build(deps): bump actions/stale from 10.2.0 to 10.3.0 (#13473)
8baa17ccedbuild(deps): bump actions/stale from 10.2.0 to 10.3.0
- build(deps): bump golang.org/x/sys from 0.44.0 to 0.45.0 in the golang-x group (#13474)
be9c7a8571build(deps): bump golang.org/x/sys in the golang-x group
- build(deps): bump github/codeql-action from 4.35.2 to 4.36.0 (#13475)
032232ac0bbuild(deps): bump github/codeql-action from 4.35.2 to 4.36.0
- build(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 (#13477)
95ccda2f23build(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1
- build(deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0 (#13478)
db807068a7build(deps): bump docker/setup-buildx-action from 4.0.0 to 4.1.0
- pkg/oci: WithUser: remove redundant isErrRange utility (#13480)
633a5be1c9pkg/oci: WithUser: remove redundant isErrRange utility
- Fix flaky e2e test (#13470)
8e0713454fcri: use per-metric timestamp in background stats collector
- Fix: TestCgroupNamespace failure on cgroups v1 hosts (#13240)
970b5d46bcFix TestCgroupNamespace failure on cgroups v1 hosts
- do not hide linitng errors (#13423)
7f10e9eb5fdo not hide linitng errors
- contrib/checkpoint: increase timeouts to 30s (#13436)
7515c32ea4contrib/checkpoint: increase timeouts to 30s
- oci: return explicit error for out-of-range USER values (#13446)
9439355c2boci: return explicit error for out-of-range USER values
- use local go toolchain in CI to confirm that build actually uses requ… (#13102)
6a80f19a1cuse local go toolchain in CI to confirm that build actually uses requested toolchain
- Fix sandbox task API endpoints for non-runc runtimes (#13360)
b88ab5af4fWire task address and version fieldsac01ae5c27protos: include task API address to CreateTaskRequest
- remove 1.26.2 from CI builds as it is not supported any longer due to… (#13419)
d7a8346600remove 1.26.2 from CI builds as it is not supported any longer due to the dependency
- ci: skip advisory jobs in merge queue (#13404)
342edf84abci: skip advisory jobs in merge queue
- cleanup the systemd debug notification logging (#13400)
7b1604739fcleanup the systemd debug notification logging
- RELEASES.md: 2.1 EOL (2026-05-05) (#13376)
bef924dcb7RELEASES.md: 2.1 EOL (2026-05-05)
- build(deps): bump the golang-x group with 2 updates (#13384)
8c2e686ffbbuild(deps): bump the golang-x group with 2 updates
- build(deps): bump github.com/pelletier/go-toml/v2 from 2.3.0 to 2.3.1 (#13345)
67121b9ab6build(deps): bump github.com/pelletier/go-toml/v2 from 2.3.0 to 2.3.1
- pkg: remove unused nolint annotations (#13391)
899dee1f59pkg: remove unused nolint annotations
- seccomp: Block AF_ALG in default socket policy (#13327)
0c23e946a7seccomp: Block AF_ALG in default socket policyed061a08deseccomp: Document socket rule scope and socketcall limitation
- overlay: disable "rebase" capability when running in UserNS (#13389)
65d75e997boverlay: disable "rebase" capability when running in UserNS
- build(deps): bump github.com/klauspost/compress from 1.18.5 to 1.18.6 (#13344)
d30223f09fbuild(deps): bump github.com/klauspost/compress from 1.18.5 to 1.18.6
- server: tolerate failed gRPC plugins when starting listeners (#13363)
ef985f8628server: tolerate failed gRPC plugins when starting listeners
- fix(erofs): set TMPDIR for mkfs.erofs on Windows (#13008)
1a6bd7020afix(erofs): set TMPDIR for mkfs.erofs on Windows
- Update Go to 1.26.3 (#13361)
c4275193b6Update Go to 1.26.3
- build(deps): bump google.golang.org/grpc from 1.80.0 to 1.81.0 (#13342)
f698202ed8build(deps): bump google.golang.org/grpc from 1.80.0 to 1.81.0
- fix: close boltdb on metadata and mount plugin close (#13348)
3bc019ea3dfix: close boltdb on metadata and mount plugin close
- Fix optional EROFS differ setup in transfer plugin (#13328)
f8a5f8d2c0Refactor transfer unpack configuration setup5860534c35Fix optional transfer differ setup
Changes from containerd/go-cni
7 commits
- feat: Instrument CNI interface with OpenTelemetry tracing (containerd/go-cni#132)
- Bump github.com/sirupsen/logrus from 1.7.0 to 1.8.3 in /integration (containerd/go-cni#134)
c3cfd3dBump github.com/sirupsen/logrus from 1.7.0 to 1.8.3 in /integration
- ci: declare least-privilege workflow-level contents: read (containerd/go-cni#138)
871cf73ci: declare workflow-level contents: read on 1 workflow
Changes from containerd/go-runc
30 commits
- chore(deps): update containerd/console to v1.0.5 (containerd/go-runc#119)
d6ff02dchore(deps): update containerd/console to v1.0.5
- io: skip chowning pipes on non-Linux platforms (containerd/go-runc#117)
2df5488io: skip chowning pipes on non-Linux platforms
- README: cleanup and fix links (containerd/go-runc#122)
c08ca30README: cleanup and fix links
- ci: update actions, golangci-lint, and test against oldest (go.mod), oldstable, and stable (containerd/go-runc#120)
- deprecate ErrParseRuncVersion (containerd/go-runc#118)
e039ef4deprecate ErrParseRuncVersion
- Add support for runc's --pidfd-socket (containerd/go-runc#115)
13e8412Add support for runc's --pidfd-socket
- Add WithExtraEnv to set the environment per invocation (containerd/go-runc#116)
7a33975Add WithExtraEnv to set the environment per invocation
- Add Go 1.22 to CI (containerd/go-runc#107)
41244b9Add Go 1.22 to CI
- Wire WorkDir into runc command invocation (containerd/go-runc#114)
a43614fAdd WorkDir option to set the runc process working directory
- crun features command is added (containerd/go-runc#103)
21dc3decrun features command is added
- exec:support to set custom log path (containerd/go-runc#112)
df61552exec:support to set custom log path
- go.mod: bump up (containerd/go-runc#98)
8f10d5cgo.mod: bump up
- Updating go-runc Stats to be compliant with OCI runc.Stats (containerd/go-runc#102)
2642b42Updating go-runc Stats to be compliant be OCI runc.Stats
Changes from containerd/nri
51 commits
- update plugins to current NRI version (containerd/nri#315)
420e081update plugins to current NRI version
- examples: update for current NRI and cgroups versions (containerd/nri#314)
492ff6cexamples: update for current NRI and cgroups versions
- chore(deps): plugins/differ bump github.com/r3labs/diff/v3 v3.0.2, github.com/goccy/go-yaml v1.13.7 (containerd/nri#313)
- chore(deps): bump google.golang.org/grpc v1.65.1 (containerd/nri#312)
8db1158chore(deps): bump google.golang.org/grpc v1.65.1
- chore(deps): bump sigs.k8s.io/yaml v1.5.0 (containerd/nri#311)
98d54e5chore(deps): bump sigs.k8s.io/yaml v1.5.0
- rewrite tests without ginkgo (containerd/nri#309)
- fix(adaptation): record sysctl removal markers in Linux.Sysctl (containerd/nri#300)
f02bd69fix(adaptation): record sysctl removal markers in Linux.Sysctl
- ci: update actions, pin actions by sha, and apply zizmor fixes, and update to ubuntu 26.04 (containerd/nri#306)
d952523ci: update to ubuntu-26.04d58850cci: pin all actions by sha8d07299ci: set default permissions, concurrency, and fix zizmor lintingb54c44fci: update codespell-project/actions-codespell@v2.2c2b379fci: update github/codeql-action v4.37.7de3aa56ci: update sigstore/cosign-installer@v4.1.26597f73ci: update golangci/golangci-lint-action@v9.3.03d0359bci: update docker actionsebdebf6ci: update actions/setup-go@v7.0.02a66ab2ci: update actions/checkout@v7.0.13bfe8b2ci: use reusable install-go action
- chore(deps): go.yaml.in/yaml/v3 v3.0.5, testify v1.12.1, logrus v1.9.4 (containerd/nri#308)
- ci: declare contents: read on ci.yml and codespell.yml (containerd/nri#296)
925060eci: declare contents: read on ci.yml and codespell.yml
- docs: add context to nri image keys (containerd/nri#307)
03cfa9cdocs: add context to nri image keys
- api,adaptation: add container image info (containerd/nri#302)
6327012api,adaptation: add container image info
- Remove dependency on
github.com/opencontainers/runtime-tools(containerd/nri#305) - replace uses of deprecated gopkg.in/yaml.v3 module (containerd/nri#293)
8c90b09replace uses of deprecated gopkg.in/yaml.v3 module
- adaptation: avoid holding lock across runtime update callback (containerd/nri#301)
55afaa2adaptation: avoid holding lock across runtime update callback
- docs: Fix typo in containerd config for default validator. (containerd/nri#297)
b7e479fdocs: Fix typo in containerd config for default validator.
- Fix .gitignore (containerd/nri#290)
Changes from containerd/platforms
2 commits
- Fix WS2022 compat on hosts past the latest LTSC (containerd/platforms#34)
bacc690Fix WS2022 compat on hosts past the latest LTSC
Changes from containerd/ttrpc
25 commits
- build(deps): bump golang.org/x/sys from 0.42.0 to 0.46.0 in the golang-x group across 1 directory (containerd/ttrpc#215)
093db7fbuild(deps): bump golang.org/x/sys
- build(deps): bump google.golang.org/grpc from 1.69.2 to 1.81.1 (containerd/ttrpc#237)
651f052build(deps): bump google.golang.org/grpc from 1.69.2 to 1.81.1
- build(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 (containerd/ttrpc#238)
ae8cc36build(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1
- build(deps): bump actions/checkout from 6.0.2 to 6.0.3 (containerd/ttrpc#240)
abdb054build(deps): bump actions/checkout from 6.0.2 to 6.0.3
- Remove gogo vanity command and gogo dependency (containerd/ttrpc#239)
5909255Remove gogo vanity command
- Fix deadlock when stream is not consumed (containerd/ttrpc#229)
- server: cancel per-stream context when handler returns (containerd/ttrpc#231)
acefd00server: cancel per-stream context when handler returns
- Set buf version from file and match dev version (containerd/ttrpc#233)
02f1a13Set buf version from file and match dev version
- Fix proto generation (containerd/ttrpc#232)
45d5a6cFix proto generation
- build(deps): bump actions/setup-go from 6.3.0 to 6.4.0 (containerd/ttrpc#228)
f0dc2d5build(deps): bump actions/setup-go from 6.3.0 to 6.4.0
- Migrate from protobuild to buf (containerd/ttrpc#226)
Dependency Changes
- cyphar.com/go-pathrs v0.2.1 -> v0.2.5
- github.com/Microsoft/hcsshim v0.15.0-rc.1 -> v0.15.0-rc.4
- github.com/ProtonMail/go-crypto v1.4.1 new
- github.com/StackExchange/wmi cbe66965904d -> v1.2.1
- github.com/checkpoint-restore/checkpointctl v1.5.0 -> v1.6.0
- github.com/cilium/ebpf v0.16.0 -> v0.17.3
- github.com/cloudflare/circl v1.6.3 new
- github.com/containerd/containerd/api v1.11.0 -> v1.12.0
- github.com/containerd/go-cni v1.1.13 -> v1.1.14
- github.com/containerd/go-runc v1.1.0 -> v1.2.1
- github.com/containerd/imgcrypt/v2 v2.0.2 -> v2.0.3
- github.com/containerd/log/otel v0.1.0 new
- github.com/containerd/nri v0.12.0 -> v0.12.3
- github.com/containerd/platforms v1.0.0-rc.4 -> v1.0.0-rc.5
- github.com/containerd/ttrpc v1.2.8 -> v1.2.9
- github.com/containerd/typeurl/v2 v2.2.3 -> v2.3.0
- github.com/containernetworking/cni v1.3.0 -> v1.3.1
- github.com/containers/ocicrypt v1.2.1 -> v1.3.2
- github.com/cyphar/filepath-securejoin v0.6.0 -> v0.7.0
- github.com/docker/go-events e31b211e4f1c -> v0.1.0
- github.com/docker/go-metrics v0.0.1 -> v0.1.0
- github.com/erofs/go-erofs v0.3.0 -> v0.3.1
- github.com/felixge/httpsnoop v1.0.4 -> v1.1.0
- github.com/fsnotify/fsnotify v1.9.0 -> v1.10.1
- github.com/fxamacker/cbor/v2 v2.9.0 -> v2.9.1
- github.com/go-jose/go-jose/v4 v4.1.4 -> v4.1.5
- github.com/go-logr/logr v1.4.3 -> v1.4.4
- github.com/go-ole/go-ole v1.2.6 -> v1.3.0
- github.com/google/certtostore v1.0.6 -> v1.0.7
- github.com/google/deck 105ad94aa8ae -> v1.1.0
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 -> v2.30.0
- github.com/intel/goresctrl v0.12.0 -> v0.13.0
- github.com/klauspost/compress v1.18.5 -> v1.20.0
- github.com/mdlayher/socket v0.5.1 -> v0.6.0
- github.com/mdlayher/vsock v1.2.1 -> v1.3.0
- github.com/miekg/pkcs11 v1.1.1 -> v1.1.2
- github.com/moby/sys/user v0.4.0 -> v0.4.1
- github.com/moby/sys/userns v0.1.0 -> v0.2.1
- github.com/opencontainers/selinux v1.13.1 -> v1.15.1
- github.com/pelletier/go-toml/v2 v2.3.0 -> v2.4.3
- github.com/prometheus/client_golang v1.23.2 -> v1.24.1
- github.com/prometheus/common v0.67.5 -> v0.70.1
- github.com/prometheus/procfs v0.19.2 -> v0.21.1
- github.com/sirupsen/logrus v1.9.4 -> v1.10.2
- github.com/smallstep/pkcs7 v0.1.1 -> v0.2.1
- github.com/stretchr/testify v1.11.1 -> v1.12.1
- github.com/urfave/cli-docs/v3 v3.1.0 new
- github.com/urfave/cli/v3 v3.11.0 new
- go.etcd.io/bbolt v1.4.3 -> v1.5.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.68.0 -> v0.71.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 -> v0.71.0
- go.opentelemetry.io/contrib/propagators/envcar v0.71.0 new
- go.opentelemetry.io/otel v1.43.0 -> v1.46.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 -> v1.46.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 -> v1.46.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.43.0 -> v1.46.0
- go.opentelemetry.io/otel/metric v1.43.0 -> v1.46.0
- go.opentelemetry.io/otel/sdk v1.43.0 -> v1.46.0
- go.opentelemetry.io/otel/trace v1.43.0 -> v1.46.0
- go.opentelemetry.io/proto/otlp v1.10.0 -> v1.11.0
- go.yaml.in/yaml/v2 v2.4.3 -> v2.4.4
- go.yaml.in/yaml/v3 v3.0.5 new
- golang.org/x/crypto v0.49.0 -> v0.56.0
- golang.org/x/mod v0.35.0 -> v0.41.0
- golang.org/x/net v0.52.0 -> v0.58.0
- golang.org/x/oauth2 v0.35.0 -> v0.36.0
- golang.org/x/sync v0.20.0 -> v0.23.0
- golang.org/x/sys v0.43.0 -> v0.48.0
- golang.org/x/term v0.41.0 -> v0.45.0
- golang.org/x/text v0.35.0 -> v0.41.0
- golang.org/x/time v0.15.0 -> v0.16.0
- google.golang.org/genproto/googleapis/api 9d38bb4040a9 -> da73d73af1c5
- google.golang.org/genproto/googleapis/rpc 6f92a3bedf2d -> da73d73af1c5
- google.golang.org/grpc v1.80.0 -> v1.83.2
- google.golang.org/protobuf f2248ac996af -> v1.36.12
- k8s.io/api v0.36.0 -> v0.37.0
- k8s.io/apimachinery v0.36.0 -> v0.37.0
- k8s.io/client-go v0.36.0 -> v0.37.0
- k8s.io/component-base v0.36.0 -> v0.37.0
- k8s.io/cri-api v0.36.0 -> v0.37.0
- k8s.io/cri-client v0.36.0 -> v0.37.0
- k8s.io/cri-streaming v0.36.0 -> v0.37.0
- k8s.io/kube-openapi 5883c5ee87b9 -> d427ff9ee9ad
- k8s.io/streaming v0.36.0 -> v0.37.0
- k8s.io/utils 28399d86e0b5 -> be93311217bd
- sigs.k8s.io/structured-merge-diff/v6 v6.3.2 -> v6.4.2
- tags.cncf.io/container-device-interface v1.1.0 -> v1.1.1
- tags.cncf.io/container-device-interface/specs-go v1.1.0 -> v1.1.1
Previous release can be found at v2.3.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
and CNI plugins from their official sites too.
See also the [Getting Started](https://github.com/containerd/containerd/blob/m