mirror of https://github.com/k3s-io/k3s
fix some shellcheck failures of test/images/image-util.sh
parent
c2877f862a
commit
a2954adf33
|
@ -21,7 +21,7 @@ set -o pipefail
|
||||||
TASK=$1
|
TASK=$1
|
||||||
IMAGE=$2
|
IMAGE=$2
|
||||||
|
|
||||||
KUBE_ROOT="$(cd "$(dirname "${BASH_SOURCE}")/../.." && pwd -P)"
|
KUBE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd -P)"
|
||||||
source "${KUBE_ROOT}/hack/lib/util.sh"
|
source "${KUBE_ROOT}/hack/lib/util.sh"
|
||||||
|
|
||||||
# Mapping of go ARCH to actual architectures shipped part of multiarch/qemu-user-static project
|
# Mapping of go ARCH to actual architectures shipped part of multiarch/qemu-user-static project
|
||||||
|
@ -29,7 +29,7 @@ declare -A QEMUARCHS=( ["amd64"]="x86_64" ["arm"]="arm" ["arm64"]="aarch64" ["pp
|
||||||
|
|
||||||
# Returns list of all supported architectures from BASEIMAGE file
|
# Returns list of all supported architectures from BASEIMAGE file
|
||||||
listArchs() {
|
listArchs() {
|
||||||
cut -d "=" -f 1 ${IMAGE}/BASEIMAGE
|
cut -d "=" -f 1 "${IMAGE}"/BASEIMAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
# Returns baseimage need to used in Dockerfile for any given architecture
|
# Returns baseimage need to used in Dockerfile for any given architecture
|
||||||
|
@ -56,22 +56,22 @@ build() {
|
||||||
|
|
||||||
# Create a temporary directory for every architecture and copy the image content
|
# Create a temporary directory for every architecture and copy the image content
|
||||||
# and build the image from temporary directory
|
# and build the image from temporary directory
|
||||||
mkdir -p ${KUBE_ROOT}/_tmp
|
mkdir -p "${KUBE_ROOT}"/_tmp
|
||||||
temp_dir=$(mktemp -d ${KUBE_ROOT}/_tmp/test-images-build.XXXXXX)
|
temp_dir=$(mktemp -d "${KUBE_ROOT}"/_tmp/test-images-build.XXXXXX)
|
||||||
kube::util::trap_add "rm -rf ${temp_dir}" EXIT
|
kube::util::trap_add "rm -rf ${temp_dir}" EXIT
|
||||||
|
|
||||||
cp -r ${IMAGE}/* ${temp_dir}
|
cp -r "${IMAGE}"/* "${temp_dir}"
|
||||||
if [[ -f ${IMAGE}/Makefile ]]; then
|
if [[ -f ${IMAGE}/Makefile ]]; then
|
||||||
# make bin will take care of all the prerequisites needed
|
# make bin will take care of all the prerequisites needed
|
||||||
# for building the docker image
|
# for building the docker image
|
||||||
make -C ${IMAGE} bin ARCH=${arch} TARGET=${temp_dir}
|
make -C "${IMAGE}" bin ARCH="${arch}" TARGET="${temp_dir}"
|
||||||
fi
|
fi
|
||||||
pushd ${temp_dir}
|
pushd "${temp_dir}"
|
||||||
# image tag
|
# image tag
|
||||||
TAG=$(<VERSION)
|
TAG=$(<VERSION)
|
||||||
|
|
||||||
if [[ -f BASEIMAGE ]]; then
|
if [[ -f BASEIMAGE ]]; then
|
||||||
BASEIMAGE=$(getBaseImage ${arch})
|
BASEIMAGE=$(getBaseImage "${arch}")
|
||||||
${SED} -i "s|BASEIMAGE|${BASEIMAGE}|g" Dockerfile
|
${SED} -i "s|BASEIMAGE|${BASEIMAGE}|g" Dockerfile
|
||||||
${SED} -i "s|BASEARCH|${arch}|g" Dockerfile
|
${SED} -i "s|BASEARCH|${arch}|g" Dockerfile
|
||||||
fi
|
fi
|
||||||
|
@ -89,14 +89,14 @@ build() {
|
||||||
sudo=sudo
|
sudo=sudo
|
||||||
fi
|
fi
|
||||||
"${sudo}" "${KUBE_ROOT}/third_party/multiarch/qemu-user-static/register/register.sh" --reset
|
"${sudo}" "${KUBE_ROOT}/third_party/multiarch/qemu-user-static/register/register.sh" --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}
|
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}"
|
||||||
# Ensure we don't get surprised by umask settings
|
# Ensure we don't get surprised by umask settings
|
||||||
chmod 0755 "${temp_dir}/qemu-${QEMUARCHS[$arch]}-static"
|
chmod 0755 "${temp_dir}/qemu-${QEMUARCHS[$arch]}-static"
|
||||||
${SED} -i "s/CROSS_BUILD_//g" Dockerfile
|
${SED} -i "s/CROSS_BUILD_//g" Dockerfile
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker build --pull -t ${REGISTRY}/${IMAGE}-${arch}:${TAG} .
|
docker build --pull -t "${REGISTRY}/${IMAGE}-${arch}:${TAG}" .
|
||||||
|
|
||||||
popd
|
popd
|
||||||
done
|
done
|
||||||
|
@ -115,14 +115,14 @@ docker_version_check() {
|
||||||
# This function will push the docker images
|
# This function will push the docker images
|
||||||
push() {
|
push() {
|
||||||
docker_version_check
|
docker_version_check
|
||||||
TAG=$(<${IMAGE}/VERSION)
|
TAG=$(<"${IMAGE}"/VERSION)
|
||||||
if [[ -f ${IMAGE}/BASEIMAGE ]]; then
|
if [[ -f ${IMAGE}/BASEIMAGE ]]; then
|
||||||
archs=$(listArchs)
|
archs=$(listArchs)
|
||||||
else
|
else
|
||||||
archs=${!QEMUARCHS[@]}
|
archs=${!QEMUARCHS[@]}
|
||||||
fi
|
fi
|
||||||
for arch in ${archs}; do
|
for arch in ${archs}; do
|
||||||
docker push ${REGISTRY}/${IMAGE}-${arch}:${TAG}
|
docker push "${REGISTRY}/${IMAGE}-${arch}:${TAG}"
|
||||||
done
|
done
|
||||||
|
|
||||||
kube::util::ensure-gnu-sed
|
kube::util::ensure-gnu-sed
|
||||||
|
@ -130,26 +130,26 @@ push() {
|
||||||
# The manifest command is still experimental as of Docker 18.09.2
|
# The manifest command is still experimental as of Docker 18.09.2
|
||||||
export DOCKER_CLI_EXPERIMENTAL="enabled"
|
export DOCKER_CLI_EXPERIMENTAL="enabled"
|
||||||
# Make archs list into image manifest. Eg: 'amd64 ppc64le' to '${REGISTRY}/${IMAGE}-amd64:${TAG} ${REGISTRY}/${IMAGE}-ppc64le:${TAG}'
|
# 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}
|
docker manifest create --amend "${REGISTRY}/${IMAGE}:${TAG}" "${manifest}"
|
||||||
for arch in ${archs}; do
|
for arch in ${archs}; do
|
||||||
docker manifest annotate --arch ${arch} ${REGISTRY}/${IMAGE}:${TAG} ${REGISTRY}/${IMAGE}-${arch}:${TAG}
|
docker manifest annotate --arch "${arch}" "${REGISTRY}/${IMAGE}:${TAG}" "${REGISTRY}/${IMAGE}-${arch}:${TAG}"
|
||||||
done
|
done
|
||||||
docker manifest push --purge ${REGISTRY}/${IMAGE}:${TAG}
|
docker manifest push --purge "${REGISTRY}/${IMAGE}:${TAG}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# This function is for building the go code
|
# This function is for building the go code
|
||||||
bin() {
|
bin() {
|
||||||
for SRC in $@;
|
for SRC in $@;
|
||||||
do
|
do
|
||||||
docker run --rm -it -v ${TARGET}:${TARGET}:Z -v ${KUBE_ROOT}:/go/src/k8s.io/kubernetes:Z \
|
docker run --rm -it -v "${TARGET}:${TARGET}:Z" -v "${KUBE_ROOT}":/go/src/k8s.io/kubernetes:Z \
|
||||||
golang:${GOLANG_VERSION} \
|
golang:"${GOLANG_VERSION}" \
|
||||||
/bin/bash -c "\
|
/bin/bash -c "\
|
||||||
cd /go/src/k8s.io/kubernetes/test/images/${SRC_DIR} && \
|
cd /go/src/k8s.io/kubernetes/test/images/${SRC_DIR} && \
|
||||||
CGO_ENABLED=0 GOARM=${GOARM} GOARCH=${ARCH} go build -a -installsuffix cgo --ldflags '-w' -o ${TARGET}/${SRC} ./$(dirname ${SRC})"
|
CGO_ENABLED=0 GOARM=${GOARM} GOARCH=${ARCH} go build -a -installsuffix cgo --ldflags '-w' -o ${TARGET}/${SRC} ./$(dirname "${SRC}")"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
shift
|
shift
|
||||||
|
|
||||||
eval ${TASK} "$@"
|
eval "${TASK}" "$@"
|
||||||
|
|
Loading…
Reference in New Issue