diff --git a/test/images/busybox/BASEIMAGE b/test/images/busybox/BASEIMAGE index da963894f29..0bb96181e42 100644 --- a/test/images/busybox/BASEIMAGE +++ b/test/images/busybox/BASEIMAGE @@ -1,3 +1,8 @@ +linux/amd64=busybox:1.29 +linux/arm=arm32v6/busybox:1.29 +linux/arm64=arm64v8/busybox:1.29 +linux/ppc64le=ppc64le/busybox:1.29 +linux/s390x=s390x/busybox:1.29 windows/amd64/1809=mcr.microsoft.com/windows/nanoserver:1809 windows/amd64/1903=mcr.microsoft.com/windows/nanoserver:1903 windows/amd64/1909=mcr.microsoft.com/windows/nanoserver:1909 diff --git a/test/images/busybox/Dockerfile b/test/images/busybox/Dockerfile new file mode 100644 index 00000000000..09a6978c0b5 --- /dev/null +++ b/test/images/busybox/Dockerfile @@ -0,0 +1,17 @@ +# Copyright 2020 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. + +# NOTE(claudiub): Noop. We're just mirroring the image to staging. +ARG BASEIMAGE +FROM $BASEIMAGE diff --git a/test/images/glusterdynamic-provisioner/BASEIMAGE b/test/images/glusterdynamic-provisioner/BASEIMAGE new file mode 100644 index 00000000000..37654db177f --- /dev/null +++ b/test/images/glusterdynamic-provisioner/BASEIMAGE @@ -0,0 +1 @@ +linux/amd64=docker.io/gluster/glusterdynamic-provisioner:v1.0 diff --git a/test/images/glusterdynamic-provisioner/Dockerfile b/test/images/glusterdynamic-provisioner/Dockerfile new file mode 100644 index 00000000000..09a6978c0b5 --- /dev/null +++ b/test/images/glusterdynamic-provisioner/Dockerfile @@ -0,0 +1,17 @@ +# Copyright 2020 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. + +# NOTE(claudiub): Noop. We're just mirroring the image to staging. +ARG BASEIMAGE +FROM $BASEIMAGE diff --git a/test/images/glusterdynamic-provisioner/VERSION b/test/images/glusterdynamic-provisioner/VERSION new file mode 100644 index 00000000000..6b3126cee74 --- /dev/null +++ b/test/images/glusterdynamic-provisioner/VERSION @@ -0,0 +1 @@ +v1.0 diff --git a/test/images/httpd-new/ALIAS b/test/images/httpd-new/ALIAS new file mode 100644 index 00000000000..71e8b8eecba --- /dev/null +++ b/test/images/httpd-new/ALIAS @@ -0,0 +1 @@ +httpd diff --git a/test/images/httpd-new/BASEIMAGE b/test/images/httpd-new/BASEIMAGE new file mode 100644 index 00000000000..8a9f42037b6 --- /dev/null +++ b/test/images/httpd-new/BASEIMAGE @@ -0,0 +1,5 @@ +linux/amd64=httpd:2.4.39-alpine +linux/arm=arm32v6/httpd:2.4.39-alpine +linux/arm64=arm64v8/httpd:2.4.39-alpine +linux/ppc64le=ppc64le/httpd:2.4.39-alpine +linux/s390x=s390x/httpd:2.4.39-alpine diff --git a/test/images/httpd-new/Dockerfile b/test/images/httpd-new/Dockerfile new file mode 100644 index 00000000000..09a6978c0b5 --- /dev/null +++ b/test/images/httpd-new/Dockerfile @@ -0,0 +1,17 @@ +# Copyright 2020 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. + +# NOTE(claudiub): Noop. We're just mirroring the image to staging. +ARG BASEIMAGE +FROM $BASEIMAGE diff --git a/test/images/httpd-new/VERSION b/test/images/httpd-new/VERSION new file mode 100644 index 00000000000..1831734640a --- /dev/null +++ b/test/images/httpd-new/VERSION @@ -0,0 +1 @@ +2.4.39-alpine diff --git a/test/images/httpd/BASEIMAGE b/test/images/httpd/BASEIMAGE new file mode 100644 index 00000000000..671f4b0fe5e --- /dev/null +++ b/test/images/httpd/BASEIMAGE @@ -0,0 +1,5 @@ +linux/amd64=httpd:2.4.38-alpine +linux/arm=arm32v6/httpd:2.4.38-alpine +linux/arm64=arm64v8/httpd:2.4.38-alpine +linux/ppc64le=ppc64le/httpd:2.4.38-alpine +linux/s390x=s390x/httpd:2.4.38-alpine diff --git a/test/images/httpd/Dockerfile b/test/images/httpd/Dockerfile new file mode 100644 index 00000000000..09a6978c0b5 --- /dev/null +++ b/test/images/httpd/Dockerfile @@ -0,0 +1,17 @@ +# Copyright 2020 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. + +# NOTE(claudiub): Noop. We're just mirroring the image to staging. +ARG BASEIMAGE +FROM $BASEIMAGE diff --git a/test/images/httpd/VERSION b/test/images/httpd/VERSION new file mode 100644 index 00000000000..3e6d74f5e3a --- /dev/null +++ b/test/images/httpd/VERSION @@ -0,0 +1 @@ +2.4.38-alpine diff --git a/test/images/image-util.sh b/test/images/image-util.sh index fe9f244eacd..d0b363092fd 100755 --- a/test/images/image-util.sh +++ b/test/images/image-util.sh @@ -89,16 +89,26 @@ getBaseImage() { # arm64, ppc64le, s390x build() { image=$1 + img_folder=$1 output_type=$2 docker_version_check - if [[ -f ${image}/BASEIMAGE ]]; then + if [[ -f "${img_folder}/BASEIMAGE" ]]; then os_archs=$(listOsArchs "$image") else # prepend linux/ to the QEMUARCHS items. os_archs=$(printf 'linux/%s\n' "${!QEMUARCHS[@]}") fi + # image tag + TAG=$(<"${img_folder}/VERSION") + + alias_name="$(cat "${img_folder}/ALIAS" 2>/dev/null || true)" + if [[ -n "${alias_name}" ]]; then + echo "Found an alias for '${image}'. Building / tagging image as '${alias_name}.'" + image="${alias_name}" + fi + kube::util::ensure-gnu-sed for os_arch in ${os_archs}; do @@ -116,15 +126,13 @@ build() { 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 + cp -r "${img_folder}"/* "${temp_dir}" + if [[ -f ${img_folder}/Makefile ]]; then # make bin will take care of all the prerequisites needed # for building the docker image - make -C "${image}" bin OS="${os_name}" ARCH="${arch}" TARGET="${temp_dir}" + make -C "${img_folder}" bin OS="${os_name}" ARCH="${arch}" TARGET="${temp_dir}" fi pushd "${temp_dir}" - # image tag - TAG=$(