build/lib/release: Explicitly use '--platform' in building server images

When we switched to go-runner for building the apiserver,
controller-manager, and scheduler server components, we no longer
reference the individual architectures in the image names, specifically
in the 'FROM' directive of the server image Dockerfiles.

As a result, server images for non-amd64 images copy in the go-runner
amd64 binary instead of the go-runner that matches that architecture.

This commit explicitly sets the '--platform=linux/${arch}' to ensure
we're pulling the correct go-runner arch from the manifest list.

Before:
FROM ${base_image}

After:
FROM --platform=linux/${arch} ${base_image}

Signed-off-by: Stephen Augustus <saugustus@vmware.com>
This commit is contained in:
Stephen Augustus
2020-09-05 04:45:42 -04:00
parent 0921f645a3
commit 3ab1a49766
2 changed files with 3 additions and 4 deletions

View File

@@ -93,7 +93,6 @@ readonly KUBE_CONTAINER_RSYNC_PORT=8730
#
# $1 - server architecture
kube::build::get_docker_wrapped_binaries() {
local arch=$1
local debian_iptables_version=v12.1.2
local go_runner_version=buster-v2.0.0
### If you change any of these lists, please also update DOCKERIZED_BINARIES
@@ -102,7 +101,7 @@ kube::build::get_docker_wrapped_binaries() {
"kube-apiserver,${KUBE_BASE_IMAGE_REGISTRY}/go-runner:${go_runner_version}"
"kube-controller-manager,${KUBE_BASE_IMAGE_REGISTRY}/go-runner:${go_runner_version}"
"kube-scheduler,${KUBE_BASE_IMAGE_REGISTRY}/go-runner:${go_runner_version}"
"kube-proxy,${KUBE_BASE_IMAGE_REGISTRY}/debian-iptables-${arch}:${debian_iptables_version}"
"kube-proxy,${KUBE_BASE_IMAGE_REGISTRY}/debian-iptables:${debian_iptables_version}"
)
echo "${targets[@]}"