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" <