From 99ead56b7c91d5c5d039d4b2b5f1a220f8a036b2 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 28 Sep 2022 11:19:26 +0200 Subject: [PATCH] e2e dra: add support for containerd from main in kind These instructions bring up a kind cluster with containerd 34d078e99, the latest commit from the main branch. This version of containerd has support for CDI. --- test/e2e/dra/README.md | 11 +++++++ test/e2e/dra/kind-build-image.sh | 50 ++++++++++++++++++++++++++++++++ test/e2e/dra/kind.yaml | 37 +++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100755 test/e2e/dra/kind-build-image.sh create mode 100644 test/e2e/dra/kind.yaml diff --git a/test/e2e/dra/README.md b/test/e2e/dra/README.md index 94fd70d1808..b390a477879 100644 --- a/test/e2e/dra/README.md +++ b/test/e2e/dra/README.md @@ -1,3 +1,5 @@ +# Overview + The tests in this directory cover dynamic resource allocation support in Kubernetes. They do not test the correct behavior of arbitrary dynamic resource allocation drivers. @@ -10,3 +12,12 @@ done for CSI mock testing. The advantage is that no separate images are needed for the test driver and that the e2e test has full control over all gRPC calls, in case that it needs that for operations like error injection or checking calls. + +# Cluster setup + +The container runtime must support CDI. The latest cri-o releases contain +support, containerd 1.6.x does not. To bring up a kind cluster with containerd +built from their main branch, use: + + test/e2e/dra/kind-build-image.sh dra/node:latest && \ + kind create cluster --config test/e2e/dra/kind.yaml --image dra/node:latest diff --git a/test/e2e/dra/kind-build-image.sh b/test/e2e/dra/kind-build-image.sh new file mode 100755 index 00000000000..f935f50a06e --- /dev/null +++ b/test/e2e/dra/kind-build-image.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +# Copyright 2022 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This scripts invokes `kind build image` so that the resulting +# image has a containerd with CDI support. +# +# Usage: kind-build-image.sh + +set -ex +set -o pipefail + +tag="$1" +containerd="containerd-1.6.0-830-g34d078e99" # from https://github.com/kind-ci/containerd-nightlies/releases + +tmpdir="$(mktemp -d)" +cleanup() { + rm -rf "$tmpdir" +} +trap cleanup EXIT + +kind build node-image --image "$tag" "$(pwd)" +curl -L --silent https://github.com/kind-ci/containerd-nightlies/releases/download/$containerd/$containerd-linux-amd64.tar.gz | tar -C "$tmpdir" -vzxf - +curl -L --silent https://github.com/kind-ci/containerd-nightlies/releases/download/$containerd/runc.amd64 >"$tmpdir/runc" + +cat >"$tmpdir/Dockerfile" <