From 563919c6858cf32e460005ffe67f33d1baf2fbe2 Mon Sep 17 00:00:00 2001 From: Benjamin Elder Date: Wed, 15 Oct 2025 16:48:12 -0700 Subject: [PATCH 1/2] don't update _output/bin symlink in dockerized builds --- hack/lib/golang.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index e50dc85d696..112ed814a73 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -659,9 +659,15 @@ kube::golang::place_bins() { local platform_src="/${platform//\//_}" if [[ "${platform}" == "${host_platform}" ]]; then platform_src="" - rm -f "${THIS_PLATFORM_BIN}" - mkdir -p "$(dirname "${THIS_PLATFORM_BIN}")" - ln -s "../${_KUBE_OUTPUT_SUBPATH}/${_KUBE_OUTPUT_BIN_SUBPATH}/${platform}" "${THIS_PLATFORM_BIN}" + # For compatibility with the old rsync behavior, only setup the symlink + # when we're doing a "local" build, not a "dockerized" build + # if KUBE_OUTPUT_SUBPATH is set then we're not writing to the default local path + if [[ -z "${KUBE_OUTPUT_SUBPATH+x}" ]]; then + V=4 kube::log::status "Creating ${THIS_PLATFORM_BIN} symlink for non-dockerized build" + rm -f "${THIS_PLATFORM_BIN}" + mkdir -p "$(dirname "${THIS_PLATFORM_BIN}")" + ln -s "../${_KUBE_OUTPUT_SUBPATH}/${_KUBE_OUTPUT_BIN_SUBPATH}/${platform}" "${THIS_PLATFORM_BIN}" + fi fi V=3 kube::log::status "Placing binaries for ${platform} in ${KUBE_OUTPUT_BIN}/${platform}" From 30c3c990d0e8f70f9a47fd5814d531aac36f1a4a Mon Sep 17 00:00:00 2001 From: Benjamin Elder Date: Wed, 15 Oct 2025 20:17:43 -0700 Subject: [PATCH 2/2] prevent shellcheck warning https://www.shellcheck.net/wiki/SC2153 this is not a mispelling of KUBE_OUTPUT_SUBPATH, the unprefixed version is an optional override which sets _KUBE_OUTPUT_SUBPATH, which is handled in hack/lib/init.sh where golang.sh is sourced --- hack/lib/golang.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/lib/golang.sh b/hack/lib/golang.sh index 112ed814a73..323fbe4197e 100755 --- a/hack/lib/golang.sh +++ b/hack/lib/golang.sh @@ -666,7 +666,7 @@ kube::golang::place_bins() { V=4 kube::log::status "Creating ${THIS_PLATFORM_BIN} symlink for non-dockerized build" rm -f "${THIS_PLATFORM_BIN}" mkdir -p "$(dirname "${THIS_PLATFORM_BIN}")" - ln -s "../${_KUBE_OUTPUT_SUBPATH}/${_KUBE_OUTPUT_BIN_SUBPATH}/${platform}" "${THIS_PLATFORM_BIN}" + ln -s "../${_KUBE_OUTPUT_SUBPATH:?}/${_KUBE_OUTPUT_BIN_SUBPATH:?}/${platform}" "${THIS_PLATFORM_BIN}" fi fi