Skip to content

Commit 19d4694

Browse files
committed
DO NOT MERGE: get kind fix for Kubernetes master image building
1 parent 4b2c735 commit 19d4694

File tree

2 files changed

+32
-24
lines changed

2 files changed

+32
-24
lines changed

.prow.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ CSI_PROW_HOSTPATH_DRIVER_NAME="hostpath.csi.k8s.io"
1212

1313
CSI_PROW_TESTS_SANITY="sanity"
1414

15+
CSI_PROW_KIND_VERSION="2555d8e09d5a77ee718414cec9f6083dfa028dc5"
16+
1517
. release-tools/prow.sh
1618

1719
main

release-tools/prow.sh

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -379,8 +379,8 @@ install_kind () {
379379
if run curl --fail --location -o "${CSI_PROW_WORK}/bin/kind" "https://github.com/kubernetes-sigs/kind/releases/download/${CSI_PROW_KIND_VERSION}/kind-linux-amd64"; then
380380
chmod u+x "${CSI_PROW_WORK}/bin/kind"
381381
else
382-
git_checkout https://github.com/kubernetes-sigs/kind "$GOPATH/src/sigs.k8s.io/kind" "${CSI_PROW_KIND_VERSION}" --depth=1 &&
383-
run_with_go "${CSI_PROW_GO_VERSION_KIND}" go build -o "${CSI_PROW_WORK}/bin/kind" sigs.k8s.io/kind
382+
git_checkout https://github.com/kubernetes-sigs/kind "${GOPATH}/src/sigs.k8s.io/kind" "${CSI_PROW_KIND_VERSION}" --depth=1 &&
383+
(cd "${GOPATH}/src/sigs.k8s.io/kind && make install" INSTALL_DIR="${CSI_PROW_WORK}/bin")
384384
fi
385385
}
386386

@@ -427,6 +427,30 @@ git_checkout () {
427427
(cd "$path" && run git clean -fdx) || die "failed to clean $path"
428428
}
429429

430+
# This clones out a repo ("https://github.com/kubernetes/kubernetes")
431+
# in a certain location ("$GOPATH/src/k8s.io/kubernetes") at
432+
# a certain revision (a hex commit hash, v1.13.1, master). The directory
433+
# cannot exist.
434+
git_clone () {
435+
local repo path revision parent
436+
repo="$1"
437+
shift
438+
path="$1"
439+
shift
440+
revision="$1"
441+
shift
442+
443+
parent="$(dirname "$path")"
444+
mkdir -p "$parent"
445+
(cd "$parent" && run git clone "$repo" "$path") || die "cloning $repo" failed
446+
if [ "$revision" != "latest" ]; then
447+
(cd "$path" && run git reset --hard "$revision") || die "resetting $repo to $revision failed"
448+
fi
449+
# This is useful for local testing or when switching between different revisions in the same
450+
# repo.
451+
(cd "$path" && run git clean -fdx) || die "failed to clean $path"
452+
}
453+
430454
list_gates () (
431455
set -f; IFS=','
432456
# Ignore: Double quote to prevent globbing and word splitting.
@@ -469,28 +493,10 @@ start_cluster () {
469493
if [[ "${CSI_PROW_KUBERNETES_VERSION}" =~ ^release-|^latest$ ]]; then
470494
if ! ${csi_prow_kind_have_kubernetes}; then
471495
local version="${CSI_PROW_KUBERNETES_VERSION}"
472-
if [ "$version" = "latest" ]; then
473-
version=master
474-
fi
475-
git_checkout https://github.com/kubernetes/kubernetes "$GOPATH/src/k8s.io/kubernetes" "$version" --depth=1 || die "checking out Kubernetes $version failed"
476-
477-
# "kind build" and/or the Kubernetes build rules need at least one tag, which we don't have
478-
# when doing a shallow fetch. Therefore we fake one:
479-
# release-1.12 -> v1.12.0-release.<rev>.csiprow
480-
# latest or <revision> -> v1.14.0-<rev>.csiprow
481-
case "${CSI_PROW_KUBERNETES_VERSION}" in
482-
release-*)
483-
# Ignore: See if you can use ${variable//search/replace} instead.
484-
# shellcheck disable=SC2001
485-
tag="$(echo "${CSI_PROW_KUBERNETES_VERSION}" | sed -e 's/release-\(.*\)/v\1.0-release./')";;
486-
*)
487-
# We have to make something up. v1.0.0 did not work for some reasons.
488-
tag="v999.999.999-";;
489-
esac
490-
tag="$tag$(cd "$GOPATH/src/k8s.io/kubernetes" && git rev-list --abbrev-commit HEAD).csiprow"
491-
(cd "$GOPATH/src/k8s.io/kubernetes" && run git tag -f "$tag") || die "git tag failed"
492-
go_version="$(go_version_for_kubernetes "$GOPATH/src/k8s.io/kubernetes" "$version")" || die "cannot proceed without knowing Go version for Kubernetes"
493-
run_with_go "$go_version" kind build node-image --type bazel --image csiprow/node:latest --kube-root "$GOPATH/src/k8s.io/kubernetes" || die "'kind build node-image' failed"
496+
git_clone https://github.com/kubernetes/kubernetes "${CSI_PROW_WORK}/src/kubernetes" "$version" || die "checking out Kubernetes $version failed"
497+
498+
go_version="$(go_version_for_kubernetes "${CSI_PROW_WORK}/src/kubernetes" "$version")" || die "cannot proceed without knowing Go version for Kubernetes"
499+
run_with_go "$go_version" kind build node-image --type bazel --image csiprow/node:latest --kube-root "${CSI_PROW_WORK}/src/kubernetes" || die "'kind build node-image' failed"
494500
csi_prow_kind_have_kubernetes=true
495501
fi
496502
image="csiprow/node:latest"

0 commit comments

Comments
 (0)