From d84bfef96351bb8eb0983c4d348fd70ac082c30d Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Tue, 29 Oct 2024 05:13:50 +0900 Subject: [PATCH 1/2] testutil: use containerd config version 2 Signed-off-by: Akihiro Suda --- util/testutil/workers/containerd.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/util/testutil/workers/containerd.go b/util/testutil/workers/containerd.go index ac32aa283fe7..94dffed8f738 100644 --- a/util/testutil/workers/containerd.go +++ b/util/testutil/workers/containerd.go @@ -135,11 +135,12 @@ func (c *Containerd) New(ctx context.Context, cfg *integration.BackendConfig) (b deferF.Append(func() error { return os.RemoveAll(tmpdir) }) address := getContainerdSock(tmpdir) - config := fmt.Sprintf(`root = %q + config := fmt.Sprintf(`version = 2 +root = %q state = %q # CRI plugins listens on 10010/tcp for stream server. # We disable CRI plugin so that multiple instance can run simultaneously. -disabled_plugins = ["cri"] +disabled_plugins = ["io.containerd.grpc.v1.cri"] [grpc] address = %q From b1adeed5caf1003ed565a7a89a9174c171a3e247 Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Tue, 29 Oct 2024 04:01:40 +0900 Subject: [PATCH 2/2] Dockerfile: update containerd binary to v2.0.0 Signed-off-by: Akihiro Suda --- .github/workflows/.test.yml | 1 + Dockerfile | 76 ++++++++++++++++++------------------- 2 files changed, 39 insertions(+), 38 deletions(-) diff --git a/.github/workflows/.test.yml b/.github/workflows/.test.yml index 17034affc706..586322692c80 100644 --- a/.github/workflows/.test.yml +++ b/.github/workflows/.test.yml @@ -112,6 +112,7 @@ jobs: - containerd - containerd-rootless - containerd-1.6 + - containerd-1.7 - containerd-snapshotter-stargz - oci - oci-rootless diff --git a/Dockerfile b/Dockerfile index 45f90b4eaa93..02e8b0207073 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,9 @@ # Do not update runc to v1.2.x until https://github.com/opencontainers/runc/issues/4518 is resolved ARG RUNC_VERSION=v1.1.15 -ARG CONTAINERD_VERSION=v1.7.23 -# CONTAINERD_ALT_VERSION_16 defines fallback containerd version for integration tests +ARG CONTAINERD_VERSION=v2.0.0 +# CONTAINERD_ALT_VERSION_... defines fallback containerd version for integration tests +ARG CONTAINERD_ALT_VERSION_17=v1.7.23 ARG CONTAINERD_ALT_VERSION_16=v1.6.36 ARG REGISTRY_VERSION=v2.8.3 ARG ROOTLESSKIT_VERSION=v2.3.1 @@ -207,54 +208,52 @@ RUN apk add --no-cache fuse3 git openssh pigz xz iptables ip6tables \ COPY --link examples/buildctl-daemonless/buildctl-daemonless.sh /usr/bin/ VOLUME /var/lib/buildkit -FROM gobuild-base AS containerd +FROM gobuild-base AS containerd-build WORKDIR /go/src/github.com/containerd/containerd -ARG CONTAINERD_VERSION -ADD --keep-git-dir=true "https://github.com/containerd/containerd.git#$CONTAINERD_VERSION" . ARG TARGETPLATFORM ENV CGO_ENABLED=1 BUILDTAGS=no_btrfs GO111MODULE=off RUN xx-apk add musl-dev gcc && xx-go --wrap -RUN --mount=target=/root/.cache,type=cache </dev/null 2>&1; then + mv bin/containerd-shim* /out fi +fi EOT +FROM containerd-build AS containerd +WORKDIR /go/src/github.com/containerd/containerd +ARG CONTAINERD_VERSION +ADD --keep-git-dir=true "https://github.com/containerd/containerd.git#$CONTAINERD_VERSION" . +RUN /build.sh + +# containerd-alt-17 builds containerd v1.7 for integration tests +FROM containerd-build AS containerd-alt-17 +WORKDIR /go/src/github.com/containerd/containerd +ARG CONTAINERD_ALT_VERSION_17 +ADD --keep-git-dir=true "https://github.com/containerd/containerd.git#$CONTAINERD_ALT_VERSION_17" . +RUN /build.sh + # containerd-alt-16 builds containerd v1.6 for integration tests -FROM gobuild-base AS containerd-alt-16 +FROM containerd-build AS containerd-alt-16 WORKDIR /go/src/github.com/containerd/containerd ARG CONTAINERD_ALT_VERSION_16 ADD --keep-git-dir=true "https://github.com/containerd/containerd.git#$CONTAINERD_ALT_VERSION_16" . -ARG TARGETPLATFORM -ENV CGO_ENABLED=1 BUILDTAGS=no_btrfs GO111MODULE=off -RUN xx-apk add musl-dev gcc && xx-go --wrap -RUN --mount=target=/root/.cache,type=cache < /do && chmod 0755 /docker-entrypoint.sh ENTRYPOINT ["/docker-entrypoint.sh"] # musl is needed to directly use the registry binary that is built on alpine -ENV BUILDKIT_INTEGRATION_CONTAINERD_EXTRA="containerd-1.6=/opt/containerd-alt-16/bin" +ENV BUILDKIT_INTEGRATION_CONTAINERD_EXTRA="containerd-1.7=/opt/containerd-alt-17/bin,containerd-1.6=/opt/containerd-alt-16/bin" ENV BUILDKIT_INTEGRATION_SNAPSHOTTER=stargz ENV BUILDKIT_SETUP_CGROUPV2_ROOT=1 ENV CGO_ENABLED=0 @@ -402,6 +401,7 @@ COPY --link --from=minio-mc /usr/bin/mc /usr/bin/ COPY --link --from=nydus /out/nydus-static/* /usr/bin/ COPY --link --from=stargz-snapshotter /out/* /usr/bin/ COPY --link --from=rootlesskit /rootlesskit /usr/bin/ +COPY --link --from=containerd-alt-17 /out/containerd* /opt/containerd-alt-17/bin/ COPY --link --from=containerd-alt-16 /out/containerd* /opt/containerd-alt-16/bin/ COPY --link --from=registry /out /usr/bin/ COPY --link --from=runc /usr/bin/runc /usr/bin/