From 4699f80ef73141ee87a77d03f93065e541fab382 Mon Sep 17 00:00:00 2001 From: Akihiro Suda Date: Fri, 26 May 2017 08:26:33 +0000 Subject: [PATCH] test: add test-containerd Signed-off-by: Akihiro Suda Signed-off-by: Rolf Neugebauer --- pkg/containerd/Dockerfile | 4 +-- .../020_containerd/test-containerd.yml | 19 +++++++++++ .../cases/040_packages/020_containerd/test.sh | 22 +++++++++++++ test/pkg/containerd/Dockerfile | 32 +++++++++++++++++++ test/pkg/containerd/Makefile | 15 +++++++++ test/pkg/containerd/run.sh | 11 +++++++ tools/alpine/Dockerfile | 2 ++ tools/alpine/versions | 4 +-- 8 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 test/cases/040_packages/020_containerd/test-containerd.yml create mode 100644 test/cases/040_packages/020_containerd/test.sh create mode 100644 test/pkg/containerd/Dockerfile create mode 100644 test/pkg/containerd/Makefile create mode 100755 test/pkg/containerd/run.sh diff --git a/pkg/containerd/Dockerfile b/pkg/containerd/Dockerfile index 60947a9a5..f6a297f7c 100644 --- a/pkg/containerd/Dockerfile +++ b/pkg/containerd/Dockerfile @@ -1,4 +1,4 @@ -FROM linuxkit/alpine:7cf5393e04fe0e26e9fa8f507379cacb64595918 as alpine +FROM linuxkit/alpine:24fe1b6bbf1fc95b484741587acb10da6dbc9211 as alpine RUN \ apk add \ btrfs-progs-dev \ @@ -10,11 +10,11 @@ RUN \ make \ && true ENV GOPATH=/go PATH=$PATH:/go/bin -ENV CONTAINERD_COMMIT=c215531a8f63a98a69134e804fea4ee6d354bb90 RUN mkdir -p $GOPATH/src/github.com/containerd && \ cd $GOPATH/src/github.com/containerd && \ git clone https://github.com/containerd/containerd.git WORKDIR $GOPATH/src/github.com/containerd/containerd +# CONTAINERD_COMMIT is defined in linuxkit/alpine RUN git checkout $CONTAINERD_COMMIT RUN make binaries EXTRA_FLAGS="-buildmode pie" EXTRA_LDFLAGS="-extldflags \\\"-fno-PIC -static\\\"" RUN cp bin/containerd bin/ctr bin/containerd-shim bin/dist /usr/bin/ diff --git a/test/cases/040_packages/020_containerd/test-containerd.yml b/test/cases/040_packages/020_containerd/test-containerd.yml new file mode 100644 index 000000000..c39321e7b --- /dev/null +++ b/test/cases/040_packages/020_containerd/test-containerd.yml @@ -0,0 +1,19 @@ +kernel: + image: "linuxkit/kernel:4.9.x" + cmdline: "console=ttyS0 page_poison=1" +init: + - linuxkit/init:17693d233dd009b2a3a8d23673cb85969e1dce80 + - linuxkit/runc:3a4e6cbf15470f62501b019b55e1caac5ee7689f + - linuxkit/containerd:be69ded7ed4437e2989da850581b631bac877d3e + - linuxkit/ca-certificates:75cf419fb58770884c3464eb687ec8dfc704169d +onboot: + - name: sysctl + image: "linuxkit/sysctl:3aa6bc663c2849ef239be7d941d3eaf3e6fcc018" + - name: test + image: "test-containerd:latest" # maintainers please push and update + - name: poweroff + image: "linuxkit/poweroff:7404cf2295df89ccfa2dda41997a28307a90cf28" +trust: + org: + - linuxkit + diff --git a/test/cases/040_packages/020_containerd/test.sh b/test/cases/040_packages/020_containerd/test.sh new file mode 100644 index 000000000..12457326e --- /dev/null +++ b/test/cases/040_packages/020_containerd/test.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# SUMMARY: Run contianerd test +# LABELS: +# REPEAT: + +set -e + +# Source libraries. Uncomment if needed/defined +#. "${RT_LIB}" +. "${RT_PROJECT_ROOT}/_lib/lib.sh" + +clean_up() { + find . -iname "test-containerd*" -not -iname "*.yml" -exec rm -rf {} \; +} +trap clean_up EXIT + +# Test code goes here +moby build test-containerd.yml +RESULT="$(linuxkit run -mem 2048 test-containerd)" +echo "${RESULT}" | grep -q "suite PASSED" + +exit 0 diff --git a/test/pkg/containerd/Dockerfile b/test/pkg/containerd/Dockerfile new file mode 100644 index 000000000..8a720620f --- /dev/null +++ b/test/pkg/containerd/Dockerfile @@ -0,0 +1,32 @@ +FROM linuxkit/alpine:24fe1b6bbf1fc95b484741587acb10da6dbc9211 AS mirror +RUN mkdir -p /out/etc/apk && cp -r /etc/apk/* /out/etc/apk/ +# btrfs-progfs is required for btrfs test (mkfs.btrfs) +# util-linux is required for btrfs test (losetup) +RUN apk add --no-cache --initdb -p /out \ + alpine-baselayout \ + busybox \ + btrfs-progs \ + btrfs-progs-dev \ + gcc \ + git \ + go \ + libc-dev \ + linux-headers \ + make \ + musl \ + util-linux +RUN rm -rf /out/etc/apk /out/lib/apk /out/var/cache + +FROM scratch +COPY --from=mirror /out/ / +ENV GOPATH=/go +RUN mkdir -p $GOPATH/src/github.com/containerd && \ + cd $GOPATH/src/github.com/containerd && \ + git clone https://github.com/containerd/containerd.git +WORKDIR $GOPATH/src/github.com/containerd/containerd +# CONTAINERD_COMMIT is defined in linuxkit/alpine +RUN git checkout $CONTAINERD_COMMIT +ADD run.sh ./run.sh + +ENTRYPOINT ["/bin/sh", "run.sh"] +LABEL org.mobyproject.config='{"net": "host", "capabilities": ["all"], "tmpfs": ["/tmp:exec"], "binds": ["/dev:/dev"]}' diff --git a/test/pkg/containerd/Makefile b/test/pkg/containerd/Makefile new file mode 100644 index 000000000..675a4a515 --- /dev/null +++ b/test/pkg/containerd/Makefile @@ -0,0 +1,15 @@ +.PHONY: tag push +default: push + +ORG?=linuxkit +IMAGE=test-containerd +DEPS=Dockerfile Makefile run.sh + +HASH?=$(shell git ls-tree HEAD -- ../$(notdir $(CURDIR)) | awk '{print $$3}') + +tag: $(DEPS) + docker build --squash --no-cache -t $(ORG)/$(IMAGE):$(HASH) . + +push: tag + DOCKER_CONTENT_TRUST=1 docker pull $(ORG)/$(IMAGE):$(HASH) || \ + DOCKER_CONTENT_TRUST=1 docker push $(ORG)/$(IMAGE):$(HASH) diff --git a/test/pkg/containerd/run.sh b/test/pkg/containerd/run.sh new file mode 100755 index 000000000..777c831df --- /dev/null +++ b/test/pkg/containerd/run.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +function failed { + printf "containerd test suite FAILED\n" + exit 1 +} + +# unset -race (does not work on alpine; see golang/go#14481) +export TESTFLAGS= +make root-test || failed +printf "containerd test suite PASSED\n" diff --git a/tools/alpine/Dockerfile b/tools/alpine/Dockerfile index 6c543ed4e..e9fbfee87 100644 --- a/tools/alpine/Dockerfile +++ b/tools/alpine/Dockerfile @@ -54,3 +54,5 @@ COPY --from=shellcheck /usr/local/bin/shellcheck /usr/local/bin/shellcheck COPY --from=shellcheck /usr/local/lib/ /usr/local/lib/ RUN apk update && apk upgrade -a + +ARG CONTAINERD_COMMIT=c215531a8f63a98a69134e804fea4ee6d354bb90 diff --git a/tools/alpine/versions b/tools/alpine/versions index 9d1b14d08..dd4d9de37 100644 --- a/tools/alpine/versions +++ b/tools/alpine/versions @@ -49,7 +49,7 @@ glib-2.52.1-r0 gmp-6.1.2-r0 gmp-dev-6.1.2-r0 gnutls-3.5.13-r0 -go-1.8.1-r0 +go-1.8.1-r2 gummiboot-48.1-r0 hvtools-4.4.15-r0 icu-libs-58.2-r2 @@ -130,7 +130,7 @@ lzo-2.10-r0 m4-1.4.18-r0 make-4.2.1-r0 mesa-gbm-17.0.3-r1 -mkinitfs-3.1.0_rc1-r0 +mkinitfs-3.1.0-r0 mpc1-1.0.3-r0 mpfr3-3.1.5-r0 mtools-4.0.18-r1