gvisor/kokoro/ubuntu1604/30_containerd.sh

77 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
# Copyright 2019 The gVisor 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.
set -xeo pipefail
# Helper for Go packages below.
install_helper() {
PACKAGE="${1}"
TAG="${2}"
GOPATH="${3}"
# Clone the repository.
mkdir -p "${GOPATH}"/src/$(dirname "${PACKAGE}") && \
git clone https://"${PACKAGE}" "${GOPATH}"/src/"${PACKAGE}"
# Checkout and build the repository.
(cd "${GOPATH}"/src/"${PACKAGE}" && \
git checkout "${TAG}" && \
GOPATH="${GOPATH}" make && \
GOPATH="${GOPATH}" make install)
}
# Install dependencies for the crictl tests.
apt-get install -y btrfs-tools libseccomp-dev
# Install containerd & cri-tools.
GOPATH=$(mktemp -d --tmpdir gopathXXXXX)
install_helper github.com/containerd/containerd v1.2.2 "${GOPATH}"
install_helper github.com/kubernetes-sigs/cri-tools v1.11.0 "${GOPATH}"
# Install gvisor-containerd-shim.
declare -r base="https://storage.googleapis.com/cri-containerd-staging/gvisor-containerd-shim"
declare -r latest=$(mktemp --tmpdir gvisor-containerd-shim-latest.XXXXXX)
declare -r shim_path=$(mktemp --tmpdir gvisor-containerd-shim.XXXXXX)
wget --no-verbose "${base}"/latest -O ${latest}
wget --no-verbose "${base}"/gvisor-containerd-shim-$(cat ${latest}) -O ${shim_path}
chmod +x ${shim_path}
mv ${shim_path} /usr/local/bin
# Configure containerd-shim.
declare -r shim_config_path=/etc/containerd
declare -r shim_config_tmp_path=$(mktemp --tmpdir gvisor-containerd-shim.XXXXXX.toml)
mkdir -p ${shim_config_path}
cat > ${shim_config_tmp_path} <<-EOF
runc_shim = "/usr/local/bin/containerd-shim"
[runsc_config]
debug = "true"
debug-log = "/tmp/runsc-logs/"
strace = "true"
file-access = "shared"
EOF
mv ${shim_config_tmp_path} ${shim_config_path}
# Configure CNI.
(cd "${GOPATH}" && GOPATH="${GOPATH}" \
src/github.com/containerd/containerd/script/setup/install-cni)
# Cleanup the above.
rm -rf "${GOPATH}"
rm -rf "${latest}"
rm -rf "${shim_path}"
rm -rf "${shim_config_tmp_path}"