mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 12:15:52 +00:00
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.
This commit is contained in:
parent
14db9d1f92
commit
99ead56b7c
@ -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
|
||||
|
50
test/e2e/dra/kind-build-image.sh
Executable file
50
test/e2e/dra/kind-build-image.sh
Executable file
@ -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 <tag of generated image>
|
||||
|
||||
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" <<EOF
|
||||
FROM $tag
|
||||
|
||||
COPY bin/* /usr/local/bin/
|
||||
RUN chmod a+rx /usr/local/bin/*
|
||||
COPY runc /usr/local/sbin
|
||||
RUN chmod a+rx /usr/local/sbin/runc
|
||||
|
||||
# Enable CDI as described in https://github.com/container-orchestrated-devices/container-device-interface#containerd-configuration
|
||||
RUN sed -i -e '/\[plugins."io.containerd.grpc.v1.cri"\]/a \ \ enable_cdi = true' /etc/containerd/config.toml
|
||||
EOF
|
||||
|
||||
docker build --tag "$tag" "$tmpdir"
|
37
test/e2e/dra/kind.yaml
Normal file
37
test/e2e/dra/kind.yaml
Normal file
@ -0,0 +1,37 @@
|
||||
kind: Cluster
|
||||
apiVersion: kind.x-k8s.io/v1alpha4
|
||||
nodes:
|
||||
- role: control-plane
|
||||
kubeadmConfigPatches:
|
||||
- |
|
||||
kind: ClusterConfiguration
|
||||
scheduler:
|
||||
extraArgs:
|
||||
v: "5"
|
||||
controllerManager:
|
||||
extraArgs:
|
||||
v: "5"
|
||||
apiServer:
|
||||
extraArgs:
|
||||
runtime-config: "resource.k8s.io/v1alpha1=true"
|
||||
- |
|
||||
kind: InitConfiguration
|
||||
nodeRegistration:
|
||||
kubeletExtraArgs:
|
||||
v: "5"
|
||||
- role: worker
|
||||
kubeadmConfigPatches:
|
||||
- |
|
||||
kind: JoinConfiguration
|
||||
nodeRegistration:
|
||||
kubeletExtraArgs:
|
||||
v: "5"
|
||||
- role: worker
|
||||
kubeadmConfigPatches:
|
||||
- |
|
||||
kind: JoinConfiguration
|
||||
nodeRegistration:
|
||||
kubeletExtraArgs:
|
||||
v: "5"
|
||||
featureGates:
|
||||
DynamicResourceAllocation: true
|
Loading…
Reference in New Issue
Block a user