Skip to content

Commit 65d21cd

Browse files
committed
Squashed 'release-tools/' changes from f325590..c0a4fb1
kubernetes-csi/csi-release-tools@c0a4fb1 Merge kubernetes-csi/csi-release-tools#164 from anubha-v-ardhan/patch-1 kubernetes-csi/csi-release-tools@9c6a6c0 Master to main cleanup kubernetes-csi/csi-release-tools@682c686 Merge kubernetes-csi/csi-release-tools#162 from pohly/pod-name-via-shell-command kubernetes-csi/csi-release-tools@36a29f5 Merge kubernetes-csi/csi-release-tools#163 from pohly/remove-bazel kubernetes-csi/csi-release-tools@68e43ca prow.sh: remove Bazel build support kubernetes-csi/csi-release-tools@c5f59c5 prow.sh: allow shell commands in CSI_PROW_SANITY_POD kubernetes-csi/csi-release-tools@71c810a Merge kubernetes-csi/csi-release-tools#161 from pohly/mock-test-fixes kubernetes-csi/csi-release-tools@9e438f8 prow.sh: fix mock testing kubernetes-csi/csi-release-tools@d7146c7 Merge kubernetes-csi/csi-release-tools#160 from pohly/kind-update kubernetes-csi/csi-release-tools@4b6aa60 prow.sh: update to KinD v0.11.0 kubernetes-csi/csi-release-tools@7cdc76f Merge kubernetes-csi/csi-release-tools#159 from pohly/fix-deployment-selection kubernetes-csi/csi-release-tools@ef8bd33 prow.sh: more flexible CSI_PROW_DEPLOYMENT, part II kubernetes-csi/csi-release-tools@204bc89 Merge kubernetes-csi/csi-release-tools#158 from pohly/fix-deployment-selection kubernetes-csi/csi-release-tools@61538bb prow.sh: more flexible CSI_PROW_DEPLOYMENT kubernetes-csi/csi-release-tools@2b0e6db Merge kubernetes-csi/csi-release-tools#157 from humblec/csi-release kubernetes-csi/csi-release-tools@a2fcd6d Adding myself to csi reviewers group git-subtree-dir: release-tools git-subtree-split: c0a4fb1dd00b02879dbcea987e2e9524e4f5a905
1 parent 5cab5f4 commit 65d21cd

File tree

4 files changed

+57
-44
lines changed

4 files changed

+57
-44
lines changed

KUBERNETES_CSI_OWNERS_ALIASES

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ aliases:
2121
- chrishenzie
2222
- ggriffiths
2323
- gnufied
24+
- humblec
2425
- j-griffith
2526
- Jiawei0227
2627
- jingxu97

SIDECAR_RELEASE_PROCESS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ naming convention `<hostpath-deployment-version>-on-<kubernetes-version>`.
9595
1. Check [image build status](https://k8s-testgrid.appspot.com/sig-storage-image-build).
9696
1. Promote images from k8s-staging-sig-storage to k8s.gcr.io/sig-storage. From
9797
the [k8s image
98-
repo](https://github.com/kubernetes/k8s.io/tree/master/k8s.gcr.io/images/k8s-staging-sig-storage),
98+
repo](https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io/images/k8s-staging-sig-storage),
9999
run `./generate.sh > images.yaml`, and send a PR with the updated images.
100100
Once merged, the image promoter will copy the images from staging to prod.
101101
1. Update [kubernetes-csi/docs](https://github.com/kubernetes-csi/docs) sidecar

cloudbuild.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# See https://github.com/kubernetes/test-infra/blob/master/config/jobs/image-pushing/README.md
1414
# for more details on image pushing process in Kubernetes.
1515
#
16-
# To promote release images, see https://github.com/kubernetes/k8s.io/tree/master/k8s.gcr.io/images/k8s-staging-sig-storage.
16+
# To promote release images, see https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io/images/k8s-staging-sig-storage.
1717

1818
# This must be specified in seconds. If omitted, defaults to 600s (10 mins).
1919
# Building three images in external-snapshotter takes roughly half an hour,

prow.sh

Lines changed: 54 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@
3333
# The expected environment is:
3434
# - $GOPATH/src/<import path> for the repository that is to be tested,
3535
# with PR branch merged (when testing a PR)
36-
# - optional: bazel installed (when testing against Kubernetes master),
37-
# must be recent enough for Kubernetes master
3836
# - running on linux-amd64
3937
# - kind (https://github.com/kubernetes-sigs/kind) installed
4038
# - optional: Go already installed
@@ -139,11 +137,8 @@ kind_version_default () {
139137
case "${CSI_PROW_KUBERNETES_VERSION}" in
140138
latest|master)
141139
echo main;;
142-
1.21*|release-1.21)
143-
# TODO: replace this special case once the next KinD release supports 1.21.
144-
echo main;;
145140
*)
146-
echo v0.10.0;;
141+
echo v0.11.0;;
147142
esac
148143
}
149144

@@ -154,16 +149,14 @@ configvar CSI_PROW_KIND_VERSION "$(kind_version_default)" "kind"
154149

155150
# kind images to use. Must match the kind version.
156151
# The release notes of each kind release list the supported images.
157-
configvar CSI_PROW_KIND_IMAGES "kindest/node:v1.20.2@sha256:8f7ea6e7642c0da54f04a7ee10431549c0257315b3a634f6ef2fecaaedb19bab
158-
kindest/node:v1.19.7@sha256:a70639454e97a4b733f9d9b67e12c01f6b0297449d5b9cbbef87473458e26dca
159-
kindest/node:v1.18.15@sha256:5c1b980c4d0e0e8e7eb9f36f7df525d079a96169c8a8f20d8bd108c0d0889cc4
160-
kindest/node:v1.17.17@sha256:7b6369d27eee99c7a85c48ffd60e11412dc3f373658bc59b7f4d530b7056823e
161-
kindest/node:v1.16.15@sha256:c10a63a5bda231c0a379bf91aebf8ad3c79146daca59db816fb963f731852a99
162-
kindest/node:v1.15.12@sha256:67181f94f0b3072fb56509107b380e38c55e23bf60e6f052fbd8052d26052fb5
163-
kindest/node:v1.14.10@sha256:3fbed72bcac108055e46e7b4091eb6858ad628ec51bf693c21f5ec34578f6180" "kind images"
164-
165-
# Use kind node-image --type=bazel by default, but allow to disable that.
166-
configvar CSI_PROW_USE_BAZEL true "use Bazel during 'kind node-image' invocation"
152+
configvar CSI_PROW_KIND_IMAGES "kindest/node:v1.21.1@sha256:fae9a58f17f18f06aeac9772ca8b5ac680ebbed985e266f711d936e91d113bad
153+
kindest/node:v1.20.7@sha256:e645428988191fc824529fd0bb5c94244c12401cf5f5ea3bd875eb0a787f0fe9
154+
kindest/node:v1.19.11@sha256:7664f21f9cb6ba2264437de0eb3fe99f201db7a3ac72329547ec4373ba5f5911
155+
kindest/node:v1.18.19@sha256:530378628c7c518503ade70b1df698b5de5585dcdba4f349328d986b8849b1ee
156+
kindest/node:v1.17.17@sha256:c581fbf67f720f70aaabc74b44c2332cc753df262b6c0bca5d26338492470c17
157+
kindest/node:v1.16.15@sha256:430c03034cd856c1f1415d3e37faf35a3ea9c5aaa2812117b79e6903d1fc9651
158+
kindest/node:v1.15.12@sha256:8d575f056493c7778935dd855ded0e95c48cb2fab90825792e8fc9af61536bf9
159+
kindest/node:v1.14.10@sha256:6033e04bcfca7c5f2a9c4ce77551e1abf385bcd2709932ec2f6a9c8c0aff6d4f" "kind images"
167160

168161
# By default, this script tests sidecars with the CSI hostpath driver,
169162
# using the install_csi_driver function. That function depends on
@@ -305,10 +298,12 @@ tests_need_alpha_cluster () {
305298
# in the e2e.test's normal YAML files.
306299
#
307300
# The default is to enable this for all jobs which use canary images
308-
# because we want to know whether our release candidates will pass all
309-
# existing tests (the storage testsuites and mock testing in
310-
# Kubernetes).
311-
configvar CSI_PROW_E2E_MOCK "$(if [ "${CSI_PROW_DRIVER_CANARY}" = "canary" ]; then echo true; else echo false; fi)" "enable CSI mock volume tests"
301+
# and the latest Kubernetes because those images will be used for mock
302+
# testing once they are released. Using them for mock testing with
303+
# older Kubernetes releases is too risky because the deployment files
304+
# can be very old (for example, still using a removed -provisioner
305+
# parameter in external-provisioner).
306+
configvar CSI_PROW_E2E_MOCK "$(if [ "${CSI_PROW_DRIVER_CANARY}" = "canary" ] && [ "${CSI_PROW_KUBERNETES_VERSION}" = "latest" ]; then echo true; else echo false; fi)" "enable CSI mock volume tests"
312307

313308
# Regex for non-alpha, feature-tagged tests that should be run.
314309
#
@@ -591,17 +586,12 @@ start_cluster () {
591586
if [ "$version" = "latest" ]; then
592587
version=master
593588
fi
594-
if ${CSI_PROW_USE_BAZEL}; then
595-
type="bazel"
596-
else
597-
type="docker"
598-
fi
599589
git_clone https://github.com/kubernetes/kubernetes "${CSI_PROW_WORK}/src/kubernetes" "$(version_to_git "$version")" || die "checking out Kubernetes $version failed"
600590

601591
go_version="$(go_version_for_kubernetes "${CSI_PROW_WORK}/src/kubernetes" "$version")" || die "cannot proceed without knowing Go version for Kubernetes"
602592
# Changing into the Kubernetes source code directory is a workaround for https://github.com/kubernetes-sigs/kind/issues/1910
603593
# shellcheck disable=SC2046
604-
(cd "${CSI_PROW_WORK}/src/kubernetes" && run_with_go "$go_version" kind build node-image --image csiprow/node:latest $(if [ "$CSI_PROW_KIND_VERSION" != "main" ]; then echo --type="$type"; fi) --kube-root "${CSI_PROW_WORK}/src/kubernetes") || die "'kind build node-image' failed"
594+
(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"
605595
csi_prow_kind_have_kubernetes=true
606596
fi
607597
image="csiprow/node:latest"
@@ -654,24 +644,38 @@ delete_cluster_inside_prow_job() {
654644
# Looks for the deployment as specified by CSI_PROW_DEPLOYMENT and CSI_PROW_KUBERNETES_VERSION
655645
# in the given directory.
656646
find_deployment () {
657-
local dir file
658-
dir="$1"
647+
local dir="$1"
648+
local file
659649

660-
# Fixed deployment name? Use it if it exists, otherwise fail.
650+
# major/minor without release- prefix.
651+
local k8sver
652+
# Ignore: See if you can use ${variable//search/replace} instead.
653+
# shellcheck disable=SC2001
654+
k8sver="$(echo "${CSI_PROW_KUBERNETES_VERSION}" | sed -e 's/^release-//' -e 's/\([0-9]*\)\.\([0-9]*\).*/\1.\2/')"
655+
656+
# Desired deployment, either specified completely, including version, or derived from other variables.
657+
local deployment
658+
deployment=${CSI_PROW_DEPLOYMENT:-kubernetes-${k8sver}${CSI_PROW_DEPLOYMENT_SUFFIX}}
659+
660+
# Fixed deployment name? Use it if it exists.
661661
if [ "${CSI_PROW_DEPLOYMENT}" ]; then
662662
file="$dir/${CSI_PROW_DEPLOYMENT}/deploy.sh"
663-
if ! [ -e "$file" ]; then
664-
return 1
663+
if [ -e "$file" ]; then
664+
echo "$file"
665+
return 0
665666
fi
666-
echo "$file"
667-
return 0
667+
668+
# CSI_PROW_DEPLOYMENT=kubernetes-x.yy must be mapped to kubernetes-latest
669+
# as fallback. Same for kubernetes-distributed-x.yy.
668670
fi
669671

670-
# Ignore: See if you can use ${variable//search/replace} instead.
671-
# shellcheck disable=SC2001
672-
file="$dir/kubernetes-$(echo "${CSI_PROW_KUBERNETES_VERSION}" | sed -e 's/\([0-9]*\)\.\([0-9]*\).*/\1.\2/')${CSI_PROW_DEPLOYMENT_SUFFIX}/deploy.sh"
672+
file="$dir/${deployment}/deploy.sh"
673673
if ! [ -e "$file" ]; then
674-
file="$dir/kubernetes-latest${CSI_PROW_DEPLOYMENT_SUFFIX}/deploy.sh"
674+
# Replace the first xx.yy number with "latest", for example
675+
# kubernetes-1.21-test -> kubernetes-latest-test.
676+
# Ignore: See if you can use ${variable//search/replace} instead.
677+
# shellcheck disable=SC2001
678+
file="$dir/$(echo "$deployment" | sed -e 's/[0-9][0-9]*\.[0-9][0-9]*/latest/')/deploy.sh"
675679
if ! [ -e "$file" ]; then
676680
return 1
677681
fi
@@ -969,7 +973,7 @@ run_e2e () (
969973
# the full Kubernetes E2E testsuite while only running a few tests.
970974
move_junit () {
971975
if ls "${ARTIFACTS}"/junit_[0-9]*.xml 2>/dev/null >/dev/null; then
972-
run_filter_junit -t="External Storage" -o "${ARTIFACTS}/junit_${name}.xml" "${ARTIFACTS}"/junit_[0-9]*.xml && rm -f "${ARTIFACTS}"/junit_[0-9]*.xml
976+
run_filter_junit -t="External.Storage|CSI.mock.volume" -o "${ARTIFACTS}/junit_${name}.xml" "${ARTIFACTS}"/junit_[0-9]*.xml && rm -f "${ARTIFACTS}"/junit_[0-9]*.xml
973977
fi
974978
}
975979
trap move_junit EXIT
@@ -982,9 +986,17 @@ run_e2e () (
982986
run_sanity () (
983987
install_sanity || die "installing csi-sanity failed"
984988
989+
if [[ "${CSI_PROW_SANITY_POD}" =~ " " ]]; then
990+
# Contains spaces, more complex than a simple pod name.
991+
# Evaluate as a shell command.
992+
pod=$(eval "${CSI_PROW_SANITY_POD}") || die "evaluation failed: CSI_PROW_SANITY_POD=${CSI_PROW_SANITY_POD}"
993+
else
994+
pod="${CSI_PROW_SANITY_POD}"
995+
fi
996+
985997
cat >"${CSI_PROW_WORK}/mkdir_in_pod.sh" <<EOF
986998
#!/bin/sh
987-
kubectl exec "${CSI_PROW_SANITY_POD}" -c "${CSI_PROW_SANITY_CONTAINER}" -- mkdir "\$@" && echo "\$@"
999+
kubectl exec "$pod" -c "${CSI_PROW_SANITY_CONTAINER}" -- mkdir "\$@" && echo "\$@"
9881000
EOF
9891001
# Using "rm -rf" as fallback for "rmdir" is a workaround for:
9901002
# Node Service
@@ -1009,8 +1021,8 @@ EOF
10091021
# why it happened.
10101022
cat >"${CSI_PROW_WORK}/rmdir_in_pod.sh" <<EOF
10111023
#!/bin/sh
1012-
if ! kubectl exec "${CSI_PROW_SANITY_POD}" -c "${CSI_PROW_SANITY_CONTAINER}" -- rmdir "\$@"; then
1013-
kubectl exec "${CSI_PROW_SANITY_POD}" -c "${CSI_PROW_SANITY_CONTAINER}" -- rm -rf "\$@"
1024+
if ! kubectl exec "$pod" -c "${CSI_PROW_SANITY_CONTAINER}" -- rmdir "\$@"; then
1025+
kubectl exec "$pod" -c "${CSI_PROW_SANITY_CONTAINER}" -- rm -rf "\$@"
10141026
exit 1
10151027
fi
10161028
EOF
@@ -1029,7 +1041,7 @@ else
10291041
fi
10301042
SCRIPT
10311043
)
1032-
kubectl exec "${CSI_PROW_SANITY_POD}" -c "${CSI_PROW_SANITY_CONTAINER}" -- /bin/sh -c "\${CHECK_PATH}"
1044+
kubectl exec "$pod" -c "${CSI_PROW_SANITY_CONTAINER}" -- /bin/sh -c "\${CHECK_PATH}"
10331045
EOF
10341046
10351047
chmod u+x "${CSI_PROW_WORK}"/*dir_in_pod.sh

0 commit comments

Comments
 (0)