Add build-containerd.sh to build containerd from existing repo

Signed-off-by: Lantao Liu <lantaol@google.com>
This commit is contained in:
Lantao Liu
2018-03-16 06:40:14 +00:00
parent 0b8e9060d7
commit a69f3555da
18 changed files with 412 additions and 200 deletions

46
test/build-containerd.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
# Copyright 2018 The containerd 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 script is used to build and upload latest containerd from
# containerd/containerd in gcr.io/k8s-testimages/kubekins-e2e.
set -o xtrace
set -o errexit
set -o nounset
set -o pipefail
source $(dirname "${BASH_SOURCE[0]}")/build-utils.sh
cd "${ROOT}"
if [ -z "${GOPATH}" ]; then
echo "GOPATH is not set"
exit 1
fi
CONTAINERD_PATH=${GOPATH}/src/github.com/containerd/containerd
if [ ! -d "${CONTAINERD_PATH}" ]; then
echo "containerd repo does not exist"
exit 1
fi
# Make sure output directory is clean.
make clean
# Build and push test tarball.
PUSH_VERSION=true DEPLOY_DIR=${DEPLOY_DIR:-""} \
make push TARBALL_PREFIX=containerd-cni \
INCLUDE_CNI=true \
CHECKOUT_CONTAINERD=false \
VENDOR=${CONTAINERD_PATH}/vendor.conf

42
test/build-utils.sh Executable file
View File

@@ -0,0 +1,42 @@
#!/bin/bash
# Copyright 2018 The containerd 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.
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/..
# PROJECT is the gce project to upload tarball.
PROJECT=${PROJECT:-"k8s-cri-containerd"}
# GOOGLE_APPLICATION_CREDENTIALS is the path of service account file.
if [ -z ${GOOGLE_APPLICATION_CREDENTIALS} ]; then
echo "GOOGLE_APPLICATION_CREDENTIALS is not set"
exit 1
fi
# Activate gcloud service account.
gcloud auth activate-service-account --key-file "${GOOGLE_APPLICATION_CREDENTIALS}" --project="${PROJECT}"
# Install dependent libraries.
sh -c "echo 'deb http://ftp.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/backports.list"
apt-get update
apt-get install -y btrfs-tools
apt-get install -y libseccomp2/jessie-backports
apt-get install -y libseccomp-dev/jessie-backports
apt-get install -y libapparmor-dev
# PULL_REFS is from prow.
if [ ! -z "${PULL_REFS:-""}" ]; then
DEPLOY_DIR=$(echo "${PULL_REFS}" | sha1sum | awk '{print $1}')
fi

View File

@@ -14,45 +14,19 @@
# See the License for the specific language governing permissions and
# limitations under the License.
# This script is used to build and upload cri-containerd in gcr.io/k8s-testimages/kubekins-e2e.
# This script is used to build and upload containerd with latest CRI plugin
# from containerd/cri in gcr.io/k8s-testimages/kubekins-e2e.
set -o xtrace
set -o errexit
set -o nounset
set -o pipefail
ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"/..
source $(dirname "${BASH_SOURCE[0]}")/build-utils.sh
cd "${ROOT}"
# PROJECT is the gce project to upload tarball.
PROJECT=${PROJECT:-"k8s-cri-containerd"}
# GOOGLE_APPLICATION_CREDENTIALS is the path of service account file.
if [ -z ${GOOGLE_APPLICATION_CREDENTIALS} ]; then
echo "GOOGLE_APPLICATION_CREDENTIALS is not set"
exit 1
fi
# Activate gcloud service account.
gcloud auth activate-service-account --key-file "${GOOGLE_APPLICATION_CREDENTIALS}" --project="${PROJECT}"
# Install dependent libraries.
sh -c "echo 'deb http://ftp.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/backports.list"
apt-get update
apt-get install -y btrfs-tools
apt-get install -y libseccomp2/jessie-backports
apt-get install -y libseccomp-dev/jessie-backports
apt-get install -y libapparmor-dev
# PULL_REFS is from prow.
if [ ! -z "${PULL_REFS:-""}" ]; then
DEPLOY_DIR=$(echo "${PULL_REFS}" | sha1sum | awk '{print $1}')
fi
# Make sure output directory is clean.
make clean
# Build and push e2e tarball.
DEPLOY_DIR=${DEPLOY_DIR:-""} make push
# Build and push node e2e tarball.
# Build and push test tarball.
PUSH_VERSION=true DEPLOY_DIR=${DEPLOY_DIR:-""} \
make push TARBALL_PREFIX=cri-containerd-cni INCLUDE_CNI=true CUSTOM_CONTAINERD=true

View File

@@ -50,7 +50,7 @@ fi
# By default use the release tarball with cni built in.
PKG_PREFIX=${PKG_PREFIX:-"cri-containerd-cni"}
# PKG_PREFIX_METADATA is the metadata key of PKG_PREFIX.
PKG_PREFIX_METADATA="pkg_prefix"
PKG_PREFIX_METADATA="pkg-prefix"
pkg_prefix=$(fetch_metadata "${PKG_PREFIX_METADATA}")
if [ ! -z "${pkg_prefix}" ]; then
PKG_PREFIX=${pkg_prefix}

View File

@@ -0,0 +1,9 @@
images:
ubuntu:
image: ubuntu-gke-1604-xenial-v20170420-1
project: ubuntu-os-gke-cloud
metadata: "user-data<test/e2e_node/init.yaml,containerd-configure-sh<test/configure.sh,pkg-prefix=containerd-cni"
cos-stable:
image_regex: cos-stable-60-9592-84-0
project: cos-cloud
metadata: "user-data<test/e2e_node/init.yaml,containerd-configure-sh<test/configure.sh,extra-init-sh<test/e2e_node/gci-init.sh,gci-update-strategy=update_disabled,pkg-prefix=containerd-cni"