From 8a43852c35fc80939631a29b48ee1564569caba0 Mon Sep 17 00:00:00 2001 From: Christian Schlotter Date: Wed, 15 Oct 2025 13:48:00 +0200 Subject: [PATCH 1/2] build: build by running kube-cross directly should leverage a potential KUBE_GIT_VERSION_FILE --- build/common.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build/common.sh b/build/common.sh index 300872a3ab4..078f18c541e 100755 --- a/build/common.sh +++ b/build/common.sh @@ -489,6 +489,12 @@ function kube::build::run_build_command_ex() { docker_run_opts+=(--cgroup-parent "${DOCKER_CGROUP_PARENT}") fi + if [[ -n "${KUBE_GIT_VERSION_FILE:-}" ]]; then + kube::version::get_version_vars + kube::version::save_version_vars "${KUBE_ROOT}/.dockerized-kube-version-defs" + docker_run_opts+=(--env 'KUBE_GIT_VERSION_FILE=/go/src/k8s.io/kubernetes/.dockerized-kube-version-defs') + fi + # If we have stdin we can run interactive. This allows things like 'shell.sh' # to work. However, if we run this way and don't have stdin, then it ends up # running in a daemon-ish mode. So if we don't have a stdin, we explicitly From bec429cd96f348634b5c9d2b93079f0a2927a2f4 Mon Sep 17 00:00:00 2001 From: Christian Schlotter Date: Wed, 15 Oct 2025 18:22:00 +0200 Subject: [PATCH 2/2] Review fixes --- build/common.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/build/common.sh b/build/common.sh index 078f18c541e..10ef7d6ec11 100755 --- a/build/common.sh +++ b/build/common.sh @@ -61,6 +61,8 @@ KUBE_CROSS_IMAGE="${KUBE_CROSS_IMAGE:-"${KUBE_BASE_IMAGE_REGISTRY}/kube-cross"}" readonly KUBE_CROSS_IMAGE KUBE_CROSS_VERSION="${KUBE_CROSS_VERSION:-"${KUBE_BUILD_IMAGE_CROSS_TAG}"}" readonly KUBE_CROSS_VERSION +KUBE_CROSS_CONTAINER_ROOT="/go/src/k8s.io/kubernetes" +readonly KUBE_CROSS_CONTAINER_ROOT # Here we map the output directories across both the local and remote _output # directories: @@ -462,10 +464,10 @@ function kube::build::run_build_command_ex() { --env "GOGCFLAGS=${GOGCFLAGS:-}" --env "SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH:-}" # mount source code / output dir - --volume "${KUBE_ROOT}:/go/src/k8s.io/kubernetes" + --volume "${KUBE_ROOT}:${KUBE_CROSS_CONTAINER_ROOT}" # env migrated from build-image, we could consider setting this in kube-cross --env 'KUBE_OUTPUT_SUBPATH=_output/dockerized' - --workdir /go/src/k8s.io/kubernetes + --workdir "${KUBE_CROSS_CONTAINER_ROOT}" --env 'GIT_AUTHOR_EMAIL=nobody@k8s.io' --env 'GIT_AUTHOR_NAME=kube-build-image' ) @@ -489,10 +491,10 @@ function kube::build::run_build_command_ex() { docker_run_opts+=(--cgroup-parent "${DOCKER_CGROUP_PARENT}") fi + # copy KUBE_GIT_VERSION_FILE to .dockerized-kube-version-defs and set environment variable. if [[ -n "${KUBE_GIT_VERSION_FILE:-}" ]]; then - kube::version::get_version_vars - kube::version::save_version_vars "${KUBE_ROOT}/.dockerized-kube-version-defs" - docker_run_opts+=(--env 'KUBE_GIT_VERSION_FILE=/go/src/k8s.io/kubernetes/.dockerized-kube-version-defs') + cp "${KUBE_GIT_VERSION_FILE}" "${KUBE_ROOT}/.dockerized-kube-version-defs" + docker_run_opts+=(--env "KUBE_GIT_VERSION_FILE=${KUBE_CROSS_CONTAINER_ROOT}/.dockerized-kube-version-defs") fi # If we have stdin we can run interactive. This allows things like 'shell.sh'