From 9722c1a91aa7c5460b2e9831fd7e221e5c32ab20 Mon Sep 17 00:00:00 2001 From: Richard Hrmo Date: Tue, 17 Dec 2024 13:01:44 +0100 Subject: [PATCH] Squashed 'release-tools/' changes from e31de525..04965932 04965932 Merge pull request #268 from huww98/cloudbuild 119aee1f Merge pull request #266 from jsafrane/bump-sanity-5.3.1 0ae5e52d Update cloudbuild image with go 1.21+ 406a79ac Merge pull request #267 from huww98/gomodcache 9cec273d Set GOMODCACHE to avoid re-download toolchain 98f23071 Merge pull request #260 from TerryHowe/update-csi-driver-version e9d8712d Merge pull request #259 from stmcginnis/deprecated-kind-kube-root faf79ff6 Remove --kube-root deprecated kind argument 734c2b95 Merge pull request #265 from Rakshith-R/consider-main-branch 43bde065 Bump csi-sanity to 5.3.1 f95c855b Merge pull request #262 from huww98/golang-toolchain 3c8d966f Treat main branch as equivalent to master branch 6b05f0fc use new GOTOOLCHAIN env to manage go version 18b6ac6d chore: update CSI driver version to 1.15 git-subtree-dir: release-tools git-subtree-split: 04965932661b6e62709dcdbb9c25da528bac2605 --- build.make | 9 +++++---- cloudbuild.yaml | 2 +- prow.sh | 23 ++++++++++++----------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/build.make b/build.make index 5d3079308..39a34777d 100644 --- a/build.make +++ b/build.make @@ -45,9 +45,10 @@ REV=$(shell git describe --long --tags --match='v*' --dirty 2>/dev/null || git r # Determined dynamically. IMAGE_TAGS= -# A "canary" image gets built if the current commit is the head of the remote "master" branch. +# A "canary" image gets built if the current commit is the head of the remote "master" or "main" branch. # That branch does not exist when building some other branch in TravisCI. IMAGE_TAGS+=$(shell if [ "$$(git rev-list -n1 HEAD)" = "$$(git rev-list -n1 origin/master 2>/dev/null)" ]; then echo "canary"; fi) +IMAGE_TAGS+=$(shell if [ "$$(git rev-list -n1 HEAD)" = "$$(git rev-list -n1 origin/main 2>/dev/null)" ]; then echo "canary"; fi) # A "X.Y.Z-canary" image gets built if the current commit is the head of a "origin/release-X.Y.Z" branch. # The actual suffix does not matter, only the "release-" prefix is checked. @@ -143,7 +144,7 @@ DOCKER_BUILDX_CREATE_ARGS ?= # Windows binaries can be built before adding a Dockerfile for it. # # BUILD_PLATFORMS determines which individual images are included in the multiarch image. -# PULL_BASE_REF must be set to 'master', 'release-x.y', or a tag name, and determines +# PULL_BASE_REF must be set to 'master', 'main', 'release-x.y', or a tag name, and determines # the tag for the resulting multiarch image. $(CMDS:%=push-multiarch-%): push-multiarch-%: check-pull-base-ref build-% set -ex; \ @@ -191,7 +192,7 @@ $(CMDS:%=push-multiarch-%): push-multiarch-%: check-pull-base-ref build-% done; \ docker manifest push -p $(IMAGE_NAME):$$tag; \ }; \ - if [ $(PULL_BASE_REF) = "master" ]; then \ + if [ $(PULL_BASE_REF) = "master" ] || [ $(PULL_BASE_REF) = "main" ]; then \ : "creating or overwriting canary image"; \ pushMultiArch canary; \ elif echo $(PULL_BASE_REF) | grep -q -e 'release-*' ; then \ @@ -209,7 +210,7 @@ $(CMDS:%=push-multiarch-%): push-multiarch-%: check-pull-base-ref build-% .PHONY: check-pull-base-ref check-pull-base-ref: if ! [ "$(PULL_BASE_REF)" ]; then \ - echo >&2 "ERROR: PULL_BASE_REF must be set to 'master', 'release-x.y', or a tag name."; \ + echo >&2 "ERROR: PULL_BASE_REF must be set to 'master', 'main', 'release-x.y', or a tag name."; \ exit 1; \ fi diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 99044b818..1693df84b 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -26,7 +26,7 @@ steps: # The image must contain bash and curl. Ideally it should also contain # the desired version of Go (currently defined in release-tools/prow.sh), # but that just speeds up the build and is not required. - - name: 'gcr.io/k8s-testimages/gcb-docker-gcloud:v20230623-56e06d7c18' + - name: 'gcr.io/k8s-testimages/gcb-docker-gcloud:v20240718-5ef92b5c36' entrypoint: ./.cloudbuild.sh env: - GIT_TAG=${_GIT_TAG} diff --git a/prow.sh b/prow.sh index 1f5c61de7..7b798587a 100755 --- a/prow.sh +++ b/prow.sh @@ -199,7 +199,7 @@ kindest/node:v1.18.20@sha256:738cdc23ed4be6cc0b7ea277a2ebcc454c8373d7d8fb991a7fc # If the deployment script is called with CSI_PROW_TEST_DRIVER= as # environment variable, then it must write a suitable test driver configuration # into that file in addition to installing the driver. -configvar CSI_PROW_DRIVER_VERSION "v1.12.0" "CSI driver version" +configvar CSI_PROW_DRIVER_VERSION "v1.15.0" "CSI driver version" configvar CSI_PROW_DRIVER_REPO https://github.com/kubernetes-csi/csi-driver-host-path "CSI driver repo" configvar CSI_PROW_DEPLOYMENT "" "deployment" configvar CSI_PROW_DEPLOYMENT_SUFFIX "" "additional suffix in kubernetes-x.yy[suffix].yaml files" @@ -243,7 +243,7 @@ configvar CSI_PROW_SIDECAR_E2E_PATH "${CSI_PROW_SIDECAR_E2E_IMPORT_PATH}" "CSI S # of the cluster. The alternative would have been to (cross-)compile csi-sanity # and install it inside the cluster, which is not necessarily easier. configvar CSI_PROW_SANITY_REPO https://github.com/kubernetes-csi/csi-test "csi-test repo" -configvar CSI_PROW_SANITY_VERSION v5.2.0 "csi-test version" +configvar CSI_PROW_SANITY_VERSION v5.3.1 "csi-test version" configvar CSI_PROW_SANITY_PACKAGE_PATH github.com/kubernetes-csi/csi-test "csi-test package" configvar CSI_PROW_SANITY_SERVICE "hostpath-service" "Kubernetes TCP service name that exposes csi.sock" configvar CSI_PROW_SANITY_POD "csi-hostpathplugin-0" "Kubernetes pod with CSI driver" @@ -425,7 +425,7 @@ die () { exit 1 } -# Ensure that PATH has the desired version of the Go tools, then run command given as argument. +# Ensure we use the desired version of the Go tools, then run command given as argument. # Empty parameter uses the already installed Go. In Prow, that version is kept up-to-date by # bumping the container image regularly. run_with_go () { @@ -433,15 +433,16 @@ run_with_go () { version="$1" shift - if ! [ "$version" ] || go version 2>/dev/null | grep -q "go$version"; then - run "$@" - else - if ! [ -d "${CSI_PROW_WORK}/go-$version" ]; then - run curl --fail --location "https://dl.google.com/go/go$version.linux-amd64.tar.gz" | tar -C "${CSI_PROW_WORK}" -zxf - || die "installation of Go $version failed" - mv "${CSI_PROW_WORK}/go" "${CSI_PROW_WORK}/go-$version" + if [ "$version" ]; then + version=go$version + if [ "$(GOTOOLCHAIN=$version go version | cut -d' ' -f3)" != "$version" ]; then + die "Please install Go 1.21+" fi - PATH="${CSI_PROW_WORK}/go-$version/bin:$PATH" run "$@" + else + version=local fi + # Set GOMODCACHE to make sure Kubernetes does not need to download again. + GOTOOLCHAIN=$version GOMODCACHE="$(go env GOMODCACHE)" run "$@" } # Ensure that we have the desired version of kind. @@ -624,7 +625,7 @@ start_cluster () { go_version="$(go_version_for_kubernetes "${CSI_PROW_WORK}/src/kubernetes" "$version")" || die "cannot proceed without knowing Go version for Kubernetes" # Changing into the Kubernetes source code directory is a workaround for https://github.com/kubernetes-sigs/kind/issues/1910 # shellcheck disable=SC2046 - (cd "${CSI_PROW_WORK}/src/kubernetes" && run_with_go "$go_version" kind build node-image --image csiprow/node:latest --kube-root "${CSI_PROW_WORK}/src/kubernetes") || die "'kind build node-image' failed" + (cd "${CSI_PROW_WORK}/src/kubernetes" && run_with_go "$go_version" kind build node-image "${CSI_PROW_WORK}/src/kubernetes" --image csiprow/node:latest) || die "'kind build node-image' failed" csi_prow_kind_have_kubernetes=true fi image="csiprow/node:latest"