4aff857d Merge pull request #109 from pohly/alpha-test-defaults 0427289d Merge pull request #110 from pohly/kind-0.9-bazel-build-workaround 9a370ab9 prow.sh: work around "kind build node-image" failure 522361ec prow.sh: only run alpha tests for latest Kubernetes release 22c0395c Merge pull request #108 from bnrjee/master b5b447b5 Add go ldflags using LDFLAGS at the time of compilation 16f4afbd Merge pull request #107 from pohly/kind-update 7bcee13d prow.sh: update to kind 0.9, support Kubernetes 1.19 df518fbd prow.sh: usage of Bazel optional c3afd427 Merge pull request #104 from xing-yang/snapshot dde93b22 Update to snapshot-controller v3.0.0a0f195cc
Merge pull request #106 from msau42/fix-canary7100c120
Only set staging registry when running canary jobb3c65f9c
Merge pull request #99 from msau42/add-release-processe53f3e85
Merge pull request #103 from msau42/fix-canaryd1294628
Document new method for adding CI jobs are new K8s versionse73c2ce5
Use staging registry for canary tests2c098465
Add cleanup instructions to release-notes generation60e1cd3d
Merge pull request #98 from pohly/kubernetes-1-19-fixes0979c091
prow.sh: fix E2E suite for Kubernetes >= 1.183b4a2f1d
prow.sh: fix installing Go for Kubernetes 1.19.01fbb636c
Merge pull request #97 from pohly/go-1.1582d108ac
switch to Go 1.15d8a25300
Merge pull request #95 from msau42/add-release-process843bddca
Add steps on promoting release images0345a835
Merge pull request #94 from linux-on-ibm-z/bump-timeout1fdf2d53
cloud build: bump timeout in Prow job41ec6d15
Merge pull request #93 from animeshk08/patch-15a54e67d
filter-junit: Fix gofmt error0676fcbd
Merge pull request #92 from animeshk08/patch-136ea4ffa
filter-junit: Fix golint errorf5a42037
Merge pull request #91 from cyb70289/arm6443e50d6f
prow.sh: enable building arm64 image0d5bd843
Merge pull request #90 from pohly/k8s-staging-sig-storage3df86b7d
cloud build: k8s-staging-sig-storagec5fd9610
Merge pull request #89 from pohly/cloud-build-binfmtdb0c2a7d
cloud build: initialize support for running commands in Dockerfilebe902f40
Merge pull request #88 from pohly/multiarch-windows-fix340e082f
build.make: optional inclusion of Windows in multiarch images5231f05d
build.make: properly declare push-multiarch4569f27a
build.make: fix push-multiarch ambiguity17dde9ef
Merge pull request #87 from pohly/cloud-buildbd416901
cloud build: initial set of shared files9084fecb
Merge pull request #81 from msau42/add-release-process6f2322e8
Update patch release notes generation command0fcc3b1b
Merge pull request #78 from ggriffiths/fix_csi_snapshotter_rbac_version_setd8c76fee
Support local snapshot RBAC for pull jobsc1bdf5bf
Merge pull request #80 from msau42/add-release-processea1f94aa
update release tools instructions152396e2
Merge pull request #77 from ggriffiths/snapshotter201_update7edc1461
Update snapshotter to version 2.0.14cf843f6
Merge pull request #76 from pohly/build-targets3863a0f6
build for multiple platforms only in CI, add s390x8322a7d0
Merge pull request #72 from pohly/hostpath-update7c5a89c8
prow.sh: use 1.3.0 hostpath driver for testingb8587b2b
Merge pull request #71 from wozniakjan/test-vetfdb32183
Change 'make test-vet' to call 'go vet'd717c8c4
Merge pull request #69 from pohly/test-driver-configa1432bc9
Merge pull request #70 from pohly/kubelet-feature-gates5f74333a
prow.sh: also configure feature gates for kubelet84f78b12
prow.sh: generic driver installation3c34b4f2
Merge pull request #67 from windayski/fix-linkfa90abd0
fix incorrect linkff3cc3f1
Merge pull request #54 from msau42/add-release-processac8a0212
Document the process for releasing a new sidecar23be6525
Merge pull request #65 from msau42/update-hostpath6582f2ff
Update hostpath driver version to get fix for connection-timeout4cc91745
Merge pull request #64 from ggriffiths/snapshotter_2_version_update8191eab6
Update snapshotter to version v2.0.03c463fb1
Merge pull request #61 from msau42/enable-snapshots8b0316c7
Fix overriding of junit results by using unique names for each e2e run5f444b80
Merge pull request #60 from saad-ali/updateHostpathVersionaf9549b5
Update prow hostpath driver version to 1.3.0-rc2f6c74b30
Merge pull request #57 from ggriffiths/version_gt_kubernetes_fixfc809759
Fix version_gt to work with kubernetes prefix9f1f3dd8
Merge pull request #56 from msau42/enable-snapshotsb98b2aed
Enable snapshot tests in 1.17 to be run in non-alpha jobs.9ace0204
Merge pull request #52 from msau42/update-readme540599ba
Merge pull request #53 from msau42/fix-makea4e62996
fix syntax for ppc64le build771ca6f2
Merge pull request #49 from ggriffiths/prowsh_improve_version_gtd7c69d2f
Merge pull request #51 from msau42/enable-multinode4ad69492
Improve snapshot pod running checks and improve version_gt53888ae7
Improve README by adding an explicit Kubernetes dependency section9a7a685e
Create a kind cluster with two worker nodes so that the topology feature can be tested. Test cases that test accessing volumes from multiple nodes need to be skipped4ff2f5f0
Merge pull request #50 from darkowlzz/kind-0.6.080bba1fe
Use kind v0.6.06d674a7f
Merge pull request #47 from Pensu/multi-arch8adde494
Merge pull request #45 from ggriffiths/snapshot_beta_crds003c14b2
Add snapshotter CRDs after cluster setupa41f3860
Merge pull request #46 from mucahitkurt/kind-cluster-cleanup1eaaaa1c
Delete kind cluster after tests run.83a4ef15
Adding build for ppc64le4fcafece
Merge pull request #43 from pohly/system-pod-loggingf41c1351
prow.sh: also log output of system containersee22a9ca
Merge pull request #42 from pohly/use-vendor-dir80678456
travis.yml: also use vendor directory23df4aef
prow.sh: use vendor directory if availablea53bd4c4
Merge pull request #41 from pohly/go-versionc8a1c4af
better handling of Go version5e773d2d
update CI to use Go 1.13.3f419d745
Merge pull request #40 from msau42/add-1.16e0fde8c4
Add new variables for 1.16 and remove 1.13adf00fea
Merge pull request #36 from msau42/full-clonef1697d2c
Do full git clones in travis. Shallow clones are causing test-subtree errors when the depth is exactly 50.2c819198
Merge pull request #34 from pohly/go-mod-tidy518d6af6
Merge pull request #35 from ddebroy/winbld22d6b3ce8
Build Windows only for amd64c1078a65
go-get-kubernetes.sh: automate Kubernetes dependency handling194289aa
update Go mod support0affdf95
Merge pull request #33 from gnufied/enable-hostpath-expansion6208f6ab
Enable hostpath expansion6ecaa76e
Merge pull request #30 from msau42/fix-windowsea2f1b52
build windows binaries with .exe suffix2d335506
Merge pull request #29 from mucahitkurt/create-2-node-kind-clustera8ea8bcc
create 2-node kind cluster since topology support is added to hostpath driverdf8530d9
Merge pull request #27 from pohly/dep-vendor-check35ceaedc
prow.sh: install dep if neededf85ab5af
Merge pull request #26 from ddebroy/windows19fba09b4
Add rule for building Windows binaries04008676
Merge pull request #25 from msau42/fix-master-jobsdc0a5d83
Update kind to v0.5.0aa85b82c
Merge pull request #23 from msau42/fix-master-jobsf46191d9
Kubernetes master changed the way that releases are tagged, which needed changes to kind. There are 3 changes made to prow.sh:1cac3af3
Merge pull request #22 from msau42/add-1.15-jobs0c0dc300
prow.sh: tag master images with a large version numberf4f73cef
Merge pull request #21 from msau42/add-1.15-jobs4e31f078
Change default hostpath driver name to hostpath.csi.k8s.io4b6fa4a0
Update hostpath version for sidecar testing to v1.2.0-rc2ecc79187
Update kind to v0.4.0. This requires overriding Kubernetes versions with specific patch versions that kind 0.4.0 supports. Also, feature gate setting is only supported on 1.15+ due to kind.sigs.k8s.io/v1alpha3 and kubeadm.k8s.io/v1beta2 dependencies.a6f21d40
Add variables for 1.15db8abb6e
Merge pull request #20 from pohly/test-driver-configb2f4e051
prow.sh: flexible test driver config03999882
Merge pull request #19 from pohly/go-mod-vendor066143d1
build.make: allow repos to use 'go mod' for vendoring0bee7493
Merge pull request #18 from pohly/go-versione157b6b5
update to Go 1.12.488dc9a47
Merge pull request #17 from pohly/prow0fafc663
prow.sh: skip sanity testing if component doesn't support itbcac1c1f
Merge pull request #16 from pohly/prow0b10f6a4
prow.sh: update csi-driver-host-path0c2677e8
Merge pull request #15 from pengzhisun/masterff9bce4a
Replace 'return' to 'exit' to fix shellcheck errorc60f3823
Merge pull request #14 from pohly/prow7aaac225
prow.sh: remove AllAlpha=all, part II66177736
Merge pull request #13 from pohly/prowcda2fc58
prow.sh: avoid AllAlpha=true546d5504
prow.sh: debug failing KinD cluster creation9b0d9cd7
build.make: skip shellcheck if Docker is not availableaa45a1cd
prow.sh: more efficient execution of individual testsf3d1d2df
prow.sh: fix hostpath driver version check31dfaf31
prow.sh: fix running of just "alpha" testsf5014439
prow.sh: AllAlpha=true for unknown Kubernetes versions95ae9de9
Merge pull request #9 from pohly/prowd87eccb4
prow.sh: switch back to upstream csi-driver-host-path6602d38b
prow.sh: different E2E suite depending on Kubernetes version741319bd
prow.sh: improve building Kubernetes from source29545bb0
prow.sh: take Go version from Kubernetes source429581c5
prow.sh: pull Go version from travis.yml0a0fd49b
prow.sh: comment clarification2069a0af
Merge pull request #11 from pohly/verify-shellcheck55212ff2
initial Prow test job6c7ba1be
build.make: integrate shellcheck into "make test"b2d25d4f
verify-shellcheck.sh: make it usable in csi-release-tools3b6af7b1
Merge pull request #12 from pohly/local-e2e-suite104a1ac9
build.make: avoid unit-testing E2E test suite34010e75
Merge pull request #10 from pohly/vendor-checke6db50df
check vendor directoryfb13c519
verify-shellcheck.sh: import from Kubernetes94fc1e31
build.make: avoid unit-testing E2E test suite849db0ad
Merge pull request #8 from pohly/subtree-check-relaxcc564f92
verify-subtree.sh: relax check and ignore old content33d58fdc
Merge pull request #5 from pohly/test-enhancementsbe8a4400
Merge pull request #4 from pohly/canary-fixb0336b55
build.make: more readable "make test" output09436b9f
build.make: fix pushing of "canary" image from master branch147892c9
build.make: support suppressing checks154e33d4
build.make: clarify usage of "make V=1" git-subtree-dir: release-tools git-subtree-split: 4aff857d88149e07951fcd1322f462f765401a86
149 lines
4.1 KiB
Bash
Executable File
149 lines
4.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Copyright 2014 The Kubernetes Authors.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
function kube::util::sourced_variable {
|
|
# Call this function to tell shellcheck that a variable is supposed to
|
|
# be used from other calling context. This helps quiet an "unused
|
|
# variable" warning from shellcheck and also document your code.
|
|
true
|
|
}
|
|
|
|
kube::util::sortable_date() {
|
|
date "+%Y%m%d-%H%M%S"
|
|
}
|
|
|
|
# arguments: target, item1, item2, item3, ...
|
|
# returns 0 if target is in the given items, 1 otherwise.
|
|
kube::util::array_contains() {
|
|
local search="$1"
|
|
local element
|
|
shift
|
|
for element; do
|
|
if [[ "${element}" == "${search}" ]]; then
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
# Example: kube::util::trap_add 'echo "in trap DEBUG"' DEBUG
|
|
# See: http://stackoverflow.com/questions/3338030/multiple-bash-traps-for-the-same-signal
|
|
kube::util::trap_add() {
|
|
local trap_add_cmd
|
|
trap_add_cmd=$1
|
|
shift
|
|
|
|
for trap_add_name in "$@"; do
|
|
local existing_cmd
|
|
local new_cmd
|
|
|
|
# Grab the currently defined trap commands for this trap
|
|
existing_cmd=$(trap -p "${trap_add_name}" | awk -F"'" '{print $2}')
|
|
|
|
if [[ -z "${existing_cmd}" ]]; then
|
|
new_cmd="${trap_add_cmd}"
|
|
else
|
|
new_cmd="${trap_add_cmd};${existing_cmd}"
|
|
fi
|
|
|
|
# Assign the test. Disable the shellcheck warning telling that trap
|
|
# commands should be single quoted to avoid evaluating them at this
|
|
# point instead evaluating them at run time. The logic of adding new
|
|
# commands to a single trap requires them to be evaluated right away.
|
|
# shellcheck disable=SC2064
|
|
trap "${new_cmd}" "${trap_add_name}"
|
|
done
|
|
}
|
|
|
|
kube::util::download_file() {
|
|
local -r url=$1
|
|
local -r destination_file=$2
|
|
|
|
rm "${destination_file}" 2&> /dev/null || true
|
|
|
|
for i in $(seq 5)
|
|
do
|
|
if ! curl -fsSL --retry 3 --keepalive-time 2 "${url}" -o "${destination_file}"; then
|
|
echo "Downloading ${url} failed. $((5-i)) retries left."
|
|
sleep 1
|
|
else
|
|
echo "Downloading ${url} succeed"
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
# Wait for background jobs to finish. Return with
|
|
# an error status if any of the jobs failed.
|
|
kube::util::wait-for-jobs() {
|
|
local fail=0
|
|
local job
|
|
for job in $(jobs -p); do
|
|
wait "${job}" || fail=$((fail + 1))
|
|
done
|
|
return ${fail}
|
|
}
|
|
|
|
# kube::util::join <delim> <list...>
|
|
# Concatenates the list elements with the delimiter passed as first parameter
|
|
#
|
|
# Ex: kube::util::join , a b c
|
|
# -> a,b,c
|
|
function kube::util::join {
|
|
local IFS="$1"
|
|
shift
|
|
echo "$*"
|
|
}
|
|
|
|
# kube::util::check-file-in-alphabetical-order <file>
|
|
# Check that the file is in alphabetical order
|
|
#
|
|
function kube::util::check-file-in-alphabetical-order {
|
|
local failure_file="$1"
|
|
if ! diff -u "${failure_file}" <(LC_ALL=C sort "${failure_file}"); then
|
|
{
|
|
echo
|
|
echo "${failure_file} is not in alphabetical order. Please sort it:"
|
|
echo
|
|
echo " LC_ALL=C sort -o ${failure_file} ${failure_file}"
|
|
echo
|
|
} >&2
|
|
false
|
|
fi
|
|
}
|
|
|
|
# Some useful colors.
|
|
if [[ -z "${color_start-}" ]]; then
|
|
declare -r color_start="\033["
|
|
declare -r color_red="${color_start}0;31m"
|
|
declare -r color_yellow="${color_start}0;33m"
|
|
declare -r color_green="${color_start}0;32m"
|
|
declare -r color_blue="${color_start}1;34m"
|
|
declare -r color_cyan="${color_start}1;36m"
|
|
declare -r color_norm="${color_start}0m"
|
|
|
|
kube::util::sourced_variable "${color_start}"
|
|
kube::util::sourced_variable "${color_red}"
|
|
kube::util::sourced_variable "${color_yellow}"
|
|
kube::util::sourced_variable "${color_green}"
|
|
kube::util::sourced_variable "${color_blue}"
|
|
kube::util::sourced_variable "${color_cyan}"
|
|
kube::util::sourced_variable "${color_norm}"
|
|
fi
|
|
|
|
# ex: ts=2 sw=2 et filetype=sh
|