Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test images: Mirrors dockerhub images to staging #95567

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 5 additions & 0 deletions 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
Expand Down
17 changes: 17 additions & 0 deletions 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
1 change: 1 addition & 0 deletions test/images/glusterdynamic-provisioner/BASEIMAGE
@@ -0,0 +1 @@
linux/amd64=docker.io/gluster/glusterdynamic-provisioner:v1.0
17 changes: 17 additions & 0 deletions 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
1 change: 1 addition & 0 deletions test/images/glusterdynamic-provisioner/VERSION
@@ -0,0 +1 @@
v1.0
1 change: 1 addition & 0 deletions test/images/httpd-new/ALIAS
@@ -0,0 +1 @@
httpd
5 changes: 5 additions & 0 deletions 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
17 changes: 17 additions & 0 deletions 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
1 change: 1 addition & 0 deletions test/images/httpd-new/VERSION
@@ -0,0 +1 @@
2.4.39-alpine
5 changes: 5 additions & 0 deletions 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
17 changes: 17 additions & 0 deletions 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
1 change: 1 addition & 0 deletions test/images/httpd/VERSION
@@ -0,0 +1 @@
2.4.38-alpine
30 changes: 23 additions & 7 deletions test/images/image-util.sh
Expand Up @@ -36,7 +36,7 @@ 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" )

windows_os_versions=(1809 1903 1909 2004)
windows_os_versions=(1809 1903 1909 2004 20H2)
declare -A WINDOWS_OS_VERSIONS_MAP

initWindowsOsVersions() {
Expand Down Expand Up @@ -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
Expand All @@ -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=$(<VERSION)

if [[ -f BASEIMAGE ]]; then
BASEIMAGE=$(getBaseImage "${os_arch}" | ${SED} "s|REGISTRY|${REGISTRY}|g")
Expand Down Expand Up @@ -190,6 +198,13 @@ push() {
os_archs=$(printf 'linux/%s\n' "${!QEMUARCHS[*]}")
fi

pushd "${image}"
alias_name="$(cat ALIAS 2>/dev/null || true)"
if [[ -n "${alias_name}" ]]; then
echo "Found an alias for '${image}'. Pushing image as '${alias_name}.'"
image="${alias_name}"
fi

kube::util::ensure-gnu-sed

# reset manifest list; needed in case multiple images are being built / pushed.
Expand Down Expand Up @@ -223,6 +238,7 @@ push() {
"${HOME}/.docker/manifests/${manifest_image_folder}/${manifest_image_folder}-${suffix}"
fi
done
popd
docker manifest push --purge "${REGISTRY}/${image}:${TAG}"
}

Expand Down
1 change: 1 addition & 0 deletions test/images/nginx-new/ALIAS
@@ -0,0 +1 @@
nginx
5 changes: 5 additions & 0 deletions test/images/nginx-new/BASEIMAGE
@@ -0,0 +1,5 @@
linux/amd64=nginx:1.15-alpine
linux/arm=arm32v6/nginx:1.15-alpine
linux/arm64=arm64v8/nginx:1.15-alpine
linux/ppc64le=ppc64le/nginx:1.15-alpine
linux/s390x=s390x/nginx:1.15-alpine
17 changes: 17 additions & 0 deletions test/images/nginx-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
1 change: 1 addition & 0 deletions test/images/nginx-new/VERSION
@@ -0,0 +1 @@
1.15-alpine
5 changes: 5 additions & 0 deletions test/images/nginx/BASEIMAGE
@@ -0,0 +1,5 @@
linux/amd64=nginx:1.14-alpine
linux/arm=arm32v6/nginx:1.14-alpine
linux/arm64=arm64v8/nginx:1.14-alpine
linux/ppc64le=ppc64le/nginx:1.14-alpine
linux/s390x=s390x/nginx:1.14-alpine
17 changes: 17 additions & 0 deletions test/images/nginx/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
1 change: 1 addition & 0 deletions test/images/nginx/VERSION
@@ -0,0 +1 @@
1.14-alpine
5 changes: 5 additions & 0 deletions test/images/perl/BASEIMAGE
@@ -0,0 +1,5 @@
linux/amd64=perl:5.26
linux/arm=arm32v7/perl:5.26
linux/arm64=arm64v8/perl:5.26
linux/ppc64le=ppc64le/perl:5.26
linux/s390x=s390x/perl:5.26
17 changes: 17 additions & 0 deletions test/images/perl/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
1 change: 1 addition & 0 deletions test/images/perl/VERSION
@@ -0,0 +1 @@
5.26