Skip to content

[pull] main from containerd:main - #307

Open
pull[bot] wants to merge 1432 commits into
fahedouch:mainfrom
containerd:main
Open

[pull] main from containerd:main#307
pull[bot] wants to merge 1432 commits into
fahedouch:mainfrom
containerd:main

Conversation

@pull

@pull pull Bot commented May 10, 2025

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

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

@pull pull Bot added the ⤵️ pull label May 10, 2025
AkihiroSuda and others added 29 commits July 5, 2026 02:00
TestHostNetworkDnsPreserved: GitHub Actions hosts run systemd-resolved,
so /etc/resolv.conf only contains the 127.0.0.53 stub. For host-network
containers, nerdctl deliberately provides the resolv.conf that
systemd-resolved generates with the actual upstream nameservers (see
pkg/resolvconf.Path()), while Docker keeps the stub. Capture the
nameservers accordingly in the test setup.

This could not happen while the tests ran inside a Docker container
with a Docker-generated resolv.conf.

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
The integration tests are no longer wrapped inside a Docker container.
Docker is still used to build the test dependencies (the new
`out-test-integration-artifacts` Dockerfile stage), which are then
installed on the host with hack/provisioning/linux/test-integration-env.sh,
and the tests now run with `go test` via hack/test-integration.sh:

- job-test-in-container.yml is removed; its matrix is migrated to
  job-test-in-host.yml
- job-test-in-lima.yml no longer nests Docker inside the guest VM
  (issue 3858); the artifacts are built on the host and installed
  in the guest, which is started in plain mode
- the test-integration* Dockerfile stages are removed, along with the
  unused build-minimal stage (the demo stage is retained)
- hack/test-integration-rootless.sh (moved from Dockerfile.d) runs the
  tests inside the systemd user session of the unprivileged user, which
  is available without a login, as the provisioning script enables
  lingering for that user

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
The command passed to `docker run` is executed by the generated
docker-entrypoint.service, which had no ordering dependency on the
containerd, buildkit, and stargz-snapshotter units, so
`docker run -t --rm --privileged ghcr.io/containerd/nerdctl nerdctl run ...`
was racy: it failed with "cannot access containerd socket" whenever
the command won the race against containerd. Add the ordering through
a unit drop-in.

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Build the image for the host platform, load it into Docker, and check
that `nerdctl run` works inside it, before the multi-platform image is
built and (except on pull requests) published to ghcr.io.

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
`nerdctl (run|exec) -i` (without `-t`) propagates the EOF of its own
stdin to the container by calling CloseIO: the shim deliberately keeps
its own write end of the stdin FIFO open (so that a detached client
does not propagate EOF), and only CloseIO makes the shim close it.

The io copy goroutines are started by the cio.Creator, inside
container.NewTask (respectively task.Exec), before the task (process)
is registered in containerd:
- in taskutil.NewTask, when the stdin was short enough to reach EOF
  during the creation, the container.Task API lookup in the closer
  failed with "no such task", and the error was discarded at the debug
  level;
- in container.Exec, the closer was only installed after task.Exec
  returned, and a closer firing before that was a silent no-op.

In both cases the CloseIO was lost forever: the container never
received EOF on its stdin, and eg: `nerdctl run --rm -i IMAGE cat`
hung until killed.

Make the closer block on a channel that receives the task (process)
handle when the creation returns, so that the CloseIO is always
delivered.

The race is easily reproducible under load; in the CI it is the cause
of the TestRunStdin flakiness, which became a consistent failure on
the slow almalinux-8 guests after the tests moved out of Docker.

Fix issue 5029

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
TestRunRestartWithOnFailure runs a container with --restart=on-failure:2
and then uses nerdtest.EnsureContainerExited to wait for the container to
reach the "exited" state.

However, a stopped container whose restart labels still satisfy
restart.Reconcile() is reported by nerdctl as "restarting", not
"exited" (see dockercompat.statusFromNative). For on-failure:2, this
means the container only shows "exited" after the containerd restart
monitor has performed both restarts and bumped the restart count label
to 2. Since the monitor only reconciles every 10 seconds by default,
convergence takes ~20+ seconds in the worst case - right at (or beyond)
the ~20 seconds budget of EnsureContainerExited (20 retries x 1s sleep),
especially on slow CI runners. This is the source of the observed
"container ... still not exited after 20 retries" flake.

Replace the retry counter with a 60-second deadline (keeping the
1-second poll interval), matching the wait budget already used by
TestRunRestartWithUnlessStopped. This also covers TestUpdateRestartPolicy,
which calls the same helper with an on-failure:2 policy. Passing runs are
not slowed down, as the loop still exits on the first observation of the
exited state.

Fixes #5030

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Signed-off-by: Daniel Benjamin <benjamindaniel706@gmail.com>
…windows

refactor: migrate container_run_network_windows_test.go to nerdtest.Setup
test: extend EnsureContainerExited deadline to fix flaky restart tests
run, exec: fix `-i` hanging when stdin reaches EOF during task creation
CI: run test-integration[-rootless] directly on hosts and Lima guests
…cker/login-action-4.4.0

build(deps): bump docker/login-action from 4.3.0 to 4.4.0
Bumps the golang-x group with 1 update in the / directory: [golang.org/x/text](https://github.com/golang/text).


Updates `golang.org/x/text` from 0.38.0 to 0.39.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.38.0...v0.39.0)

---
updated-dependencies:
- dependency-name: golang.org/x/text
  dependency-version: 0.39.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github.com/pelletier/go-toml/v2](https://github.com/pelletier/go-toml) from 2.4.2 to 2.4.3.
- [Release notes](https://github.com/pelletier/go-toml/releases)
- [Commits](pelletier/go-toml@v2.4.2...v2.4.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>

test case added

Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>

events: log errors when retrieving container labels

Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
Lots of env vars were shown since commit f21b32b (PR 5035)
`CI: run test-integration[-rootless] directly on hosts and Lima guests`.

GITHUB_TOKEN and ACTIONS_RUNTIME_TOKEN did not seem leaked so far,
though.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
tigron: hide env from logs by default
…-x-7db428aa2e

build(deps): bump golang.org/x/text from 0.38.0 to 0.39.0 in the golang-x group across 1 directory
….com/pelletier/go-toml/v2-2.4.3

build(deps): bump github.com/pelletier/go-toml/v2 from 2.4.2 to 2.4.3
Bumps [github.com/ipfs/go-cid](https://github.com/ipfs/go-cid) from 0.6.1 to 0.6.2.
- [Release notes](https://github.com/ipfs/go-cid/releases)
- [Commits](ipfs/go-cid@v0.6.1...v0.6.2)

---
updated-dependencies:
- dependency-name: github.com/ipfs/go-cid
  dependency-version: 0.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Docker with the containerd image store (the default since Docker v29 on
fresh installs, e.g., on the ubuntu-26.04 GitHub Actions runners) refuses
to resolve a reference that is both a tag and an image ID prefix
("ambiguous reference"), while nerdctl and Docker with the classic graph
drivers resolve the tag first.

Introduce a nerdtest.DockerContainerdSnapshotter requirement that detects
the containerd image store from the "driver-type" entry of
`docker info`'s DriverStatus, and skip TestIssue3016 with
require.Not(nerdtest.DockerContainerdSnapshotter).

Assisted-by: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Signed-off-by: Daniel Benjamin <benjamindaniel706@gmail.com>
Bumps the golang-x group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [golang.org/x/crypto](https://github.com/golang/crypto) | `0.53.0` | `0.54.0` |
| [golang.org/x/net](https://github.com/golang/net) | `0.56.0` | `0.57.0` |
| [golang.org/x/sync](https://github.com/golang/sync) | `0.21.0` | `0.22.0` |
| [golang.org/x/sys](https://github.com/golang/sys) | `0.46.0` | `0.47.0` |
| [golang.org/x/term](https://github.com/golang/term) | `0.44.0` | `0.45.0` |
| [golang.org/x/text](https://github.com/golang/text) | `0.39.0` | `0.40.0` |


Updates `golang.org/x/crypto` from 0.53.0 to 0.54.0
- [Commits](golang/crypto@v0.53.0...v0.54.0)

Updates `golang.org/x/net` from 0.56.0 to 0.57.0
- [Commits](golang/net@v0.56.0...v0.57.0)

Updates `golang.org/x/sync` from 0.21.0 to 0.22.0
- [Commits](golang/sync@v0.21.0...v0.22.0)

Updates `golang.org/x/sys` from 0.46.0 to 0.47.0
- [Commits](golang/sys@v0.46.0...v0.47.0)

Updates `golang.org/x/term` from 0.44.0 to 0.45.0
- [Commits](golang/term@v0.44.0...v0.45.0)

Updates `golang.org/x/text` from 0.39.0 to 0.40.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.39.0...v0.40.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.54.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
- dependency-name: golang.org/x/net
  dependency-version: 0.57.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
- dependency-name: golang.org/x/sync
  dependency-version: 0.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
- dependency-name: golang.org/x/sys
  dependency-version: 0.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
- dependency-name: golang.org/x/term
  dependency-version: 0.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
- dependency-name: golang.org/x/text
  dependency-version: 0.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
...

Signed-off-by: dependabot[bot] <support@github.com>
….com/ipfs/go-cid-0.6.2

build(deps): bump github.com/ipfs/go-cid from 0.6.1 to 0.6.2
…-x-357f6793ed

build(deps): bump the golang-x group with 6 updates
…ork-base-test-to-tigron

test: refactor container_run_network_base_test.go to use Tigron
…t-linux-test-to-tigron

test: refactor container_run_mount_linux_test.go to use Tigron
chemwolf6922 and others added 30 commits September 4, 2026 16:49
Signed-off-by: Feng Wang <wang6922@outlook.com>
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](docker/setup-qemu-action@96fe6ef...1f40c72)

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

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

Signed-off-by: Samran Asif <samranwebdev2000@gmail.com>
….golang.org/grpc-1.83.1

build(deps): bump google.golang.org/grpc from 1.83.0 to 1.83.1
…cker/setup-qemu-action-4.3.0

build(deps): bump docker/setup-qemu-action from 4.2.0 to 4.3.0
Signed-off-by: Daniel Benjamin <benjamindaniel706@gmail.com>
Bumps the golang-x group with 1 update: [golang.org/x/crypto](https://github.com/golang/crypto).


Updates `golang.org/x/crypto` from 0.55.0 to 0.56.0
- [Commits](golang/crypto@v0.55.0...v0.56.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-version: 0.56.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: golang-x
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [tags.cncf.io/container-device-interface](https://github.com/cncf-tags/container-device-interface) from 1.1.1-0.20260720132747-49ac08dcf160 to 1.1.1.
- [Release notes](https://github.com/cncf-tags/container-device-interface/releases)
- [Changelog](https://github.com/cncf-tags/container-device-interface/blob/main/RELEASE.md)
- [Commits](https://github.com/cncf-tags/container-device-interface/commits/v1.1.1)

---
updated-dependencies:
- dependency-name: tags.cncf.io/container-device-interface
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
…ncf.io/container-device-interface-1.1.1

build(deps): bump tags.cncf.io/container-device-interface from 1.1.1-0.20260720132747-49ac08dcf160 to 1.1.1
Bumps the docker group with 3 updates in the / directory: [github.com/docker/cli](https://github.com/docker/cli), [github.com/moby/moby/client](https://github.com/moby/moby) and [github.com/moby/moby/v2](https://github.com/moby/moby).


Updates `github.com/docker/cli` from 29.7.2+incompatible to 29.8.0+incompatible
- [Commits](docker/cli@v29.7.2...v29.8.0)

Updates `github.com/moby/moby/client` from 0.5.1 to 0.6.0
- [Release notes](https://github.com/moby/moby/releases)
- [Changelog](https://github.com/moby/moby/blob/v0.6.0/CHANGELOG.md)
- [Commits](moby/moby@v0.5.1...v0.6.0)

Updates `github.com/moby/moby/v2` from 2.0.0-beta.21 to 2.0.0-beta.23
- [Release notes](https://github.com/moby/moby/releases)
- [Commits](moby/moby@v2.0.0-beta.21...v2.0.0-beta.23)

---
updated-dependencies:
- dependency-name: github.com/docker/cli
  dependency-version: 29.8.0+incompatible
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: docker
- dependency-name: github.com/moby/moby/client
  dependency-version: 0.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: docker
- dependency-name: github.com/moby/moby/v2
  dependency-version: 2.0.0-beta.23
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: docker
...

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

Fix: remove hard coded cgroup path in nerdctl info
test(restart): drop outdated containerd 1.x plugin requirement from restart tests
…-x-6e77fb2019

build(deps): bump golang.org/x/crypto from 0.55.0 to 0.56.0 in the golang-x group
fix: preserve equals signs in image label filter values
…-4ee6c0032c

build(deps): bump the docker group across 1 directory with 3 updates
Bumps [github.com/klauspost/compress](https://github.com/klauspost/compress) from 1.19.2 to 1.20.0.
- [Release notes](https://github.com/klauspost/compress/releases)
- [Commits](klauspost/compress@v1.19.2...v1.20.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
build: print the image ID with --quiet when using the containerd worker
feat(system): add nerdctl system df
dockercompat: key inspect Networks by real CNI network name
Bumps the golang-x group with 2 updates: [golang.org/x/sync](https://github.com/golang/sync) and [golang.org/x/sys](https://github.com/golang/sys).


Updates `golang.org/x/sync` from 0.22.0 to 0.23.0
- [Commits](golang/sync@v0.22.0...v0.23.0)

Updates `golang.org/x/sys` from 0.47.0 to 0.48.0
- [Commits](golang/sys@v0.47.0...v0.48.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github.com/compose-spec/compose-go/v2](https://github.com/compose-spec/compose-go) from 2.14.0 to 2.15.0.
- [Release notes](https://github.com/compose-spec/compose-go/releases)
- [Commits](compose-spec/compose-go@v2.14.0...v2.15.0)

---
updated-dependencies:
- dependency-name: github.com/compose-spec/compose-go/v2
  dependency-version: 2.15.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [github.com/containerd/log](https://github.com/containerd/log) from 0.1.0 to 0.2.0.
- [Release notes](https://github.com/containerd/log/releases)
- [Commits](containerd/log@v0.1.0...v0.2.0)

---
updated-dependencies:
- dependency-name: github.com/containerd/log
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
….com/klauspost/compress-1.20.0

build(deps): bump github.com/klauspost/compress from 1.19.2 to 1.20.0
…-x-b740b0382b

build(deps): bump the golang-x group with 2 updates
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
….com/compose-spec/compose-go/v2-2.15.0

build(deps): bump github.com/compose-spec/compose-go/v2 from 2.14.0 to 2.15.0
….com/containerd/log-0.2.0

build(deps): bump github.com/containerd/log from 0.1.0 to 0.2.0
update RootlessKit (3.2.0-beta.0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.