Bumping k8s dependencies to 1.13
This commit is contained in:
34
vendor/k8s.io/kubernetes/test/images/image-util.sh
generated
vendored
34
vendor/k8s.io/kubernetes/test/images/image-util.sh
generated
vendored
@@ -22,6 +22,7 @@ TASK=$1
|
||||
IMAGE=$2
|
||||
|
||||
KUBE_ROOT="$(cd "$(dirname "${BASH_SOURCE}")/../.." && pwd -P)"
|
||||
source "${KUBE_ROOT}/hack/lib/util.sh"
|
||||
|
||||
# Mapping of go ARCH to actual architectures shipped part of multiarch/qemu-user-static project
|
||||
declare -A QEMUARCHS=( ["amd64"]="x86_64" ["arm"]="arm" ["arm64"]="aarch64" ["ppc64le"]="ppc64le" ["s390x"]="s390x" )
|
||||
@@ -48,12 +49,17 @@ build() {
|
||||
archs=${!QEMUARCHS[@]}
|
||||
fi
|
||||
|
||||
kube::util::ensure-gnu-sed
|
||||
|
||||
for arch in ${archs}; do
|
||||
echo "Building image for ${IMAGE} ARCH: ${arch}..."
|
||||
|
||||
# Create a temporary directory for every architecture and copy the image content
|
||||
# and build the image from temporary directory
|
||||
temp_dir=$(mktemp -d)
|
||||
mkdir -p ${KUBE_ROOT}/_tmp
|
||||
temp_dir=$(mktemp -d ${KUBE_ROOT}/_tmp/test-images-build.XXXXXX)
|
||||
kube::util::trap_add "rm -rf ${temp_dir}" EXIT
|
||||
|
||||
cp -r ${IMAGE}/* ${temp_dir}
|
||||
if [[ -f ${IMAGE}/Makefile ]]; then
|
||||
# make bin will take care of all the prerequisites needed
|
||||
@@ -66,19 +72,22 @@ build() {
|
||||
|
||||
if [[ -f BASEIMAGE ]]; then
|
||||
BASEIMAGE=$(getBaseImage ${arch})
|
||||
sed -i "s|BASEIMAGE|${BASEIMAGE}|g" Dockerfile
|
||||
${SED} -i "s|BASEIMAGE|${BASEIMAGE}|g" Dockerfile
|
||||
${SED} -i "s|BASEARCH|${arch}|g" Dockerfile
|
||||
fi
|
||||
|
||||
# copy the qemu-*-static binary to docker image to build the multi architecture image on x86 platform
|
||||
if [[ $(grep "CROSS_BUILD_" Dockerfile) ]]; then
|
||||
if [[ "${arch}" == "amd64" ]]; then
|
||||
sed -i "/CROSS_BUILD_/d" Dockerfile
|
||||
${SED} -i "/CROSS_BUILD_/d" Dockerfile
|
||||
else
|
||||
sed -i "s|QEMUARCH|${QEMUARCHS[$arch]}|g" Dockerfile
|
||||
${SED} -i "s|QEMUARCH|${QEMUARCHS[$arch]}|g" Dockerfile
|
||||
# Register qemu-*-static for all supported processors except the current one
|
||||
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
curl -sSL https://github.com/multiarch/qemu-user-static/releases/download/${QEMUVERSION}/x86_64_qemu-${QEMUARCHS[$arch]}-static.tar.gz | tar -xz -C ${temp_dir}
|
||||
sed -i "s/CROSS_BUILD_//g" Dockerfile
|
||||
# Ensure we don't get surprised by umask settings
|
||||
chmod 0755 "${temp_dir}/qemu-${QEMUARCHS[$arch]}-static"
|
||||
${SED} -i "s/CROSS_BUILD_//g" Dockerfile
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -88,8 +97,17 @@ build() {
|
||||
done
|
||||
}
|
||||
|
||||
docker_version_check() {
|
||||
docker_version=$(docker version --format '{{.Client.Version}}' | cut -d"-" -f1)
|
||||
if [[ ${docker_version} != 18.06.0 && ${docker_version} < 18.06.0 ]]; then
|
||||
echo "Minimum docker version 18.06.0 is required for creating and pushing manifest images[found: ${docker_version}]"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# This function will push the docker images
|
||||
push() {
|
||||
docker_version_check
|
||||
TAG=$(<${IMAGE}/VERSION)
|
||||
if [[ -f ${IMAGE}/BASEIMAGE ]]; then
|
||||
archs=$(listArchs)
|
||||
@@ -100,13 +118,15 @@ push() {
|
||||
docker push ${REGISTRY}/${IMAGE}-${arch}:${TAG}
|
||||
done
|
||||
|
||||
kube::util::ensure-gnu-sed
|
||||
|
||||
# Make archs list into image manifest. Eg: 'amd64 ppc64le' to '${REGISTRY}/${IMAGE}-amd64:${TAG} ${REGISTRY}/${IMAGE}-ppc64le:${TAG}'
|
||||
manifest=$(echo $archs | sed -e "s~[^ ]*~$REGISTRY\/$IMAGE\-&:$TAG~g")
|
||||
manifest=$(echo $archs | ${SED} -e "s~[^ ]*~$REGISTRY\/$IMAGE\-&:$TAG~g")
|
||||
docker manifest create --amend ${REGISTRY}/${IMAGE}:${TAG} ${manifest}
|
||||
for arch in ${archs}; do
|
||||
docker manifest annotate --arch ${arch} ${REGISTRY}/${IMAGE}:${TAG} ${REGISTRY}/${IMAGE}-${arch}:${TAG}
|
||||
done
|
||||
docker manifest push ${REGISTRY}/${IMAGE}:${TAG}
|
||||
docker manifest push --purge ${REGISTRY}/${IMAGE}:${TAG}
|
||||
}
|
||||
|
||||
# This function is for building the go code
|
||||
|
Reference in New Issue
Block a user