Skip to content

Commit d6c2e3f

Browse files
committed
Squashed 'release-tools/' changes from c60f382..6616a6b
kubernetes-csi/csi-release-tools@6616a6b Merge kubernetes-csi/csi-release-tools#146 from pohly/kubernetes-1.21 kubernetes-csi/csi-release-tools@510fb0f prow.sh: support Kubernetes 1.21 kubernetes-csi/csi-release-tools@c63c61b prow.sh: add CSI_PROW_DEPLOYMENT_SUFFIX kubernetes-csi/csi-release-tools@51ac11c Merge kubernetes-csi/csi-release-tools#144 from pohly/pull-jobs kubernetes-csi/csi-release-tools@dd54c92 pull-test.sh: test importing csi-release-tools into other repo kubernetes-csi/csi-release-tools@7d2643a Merge kubernetes-csi/csi-release-tools#143 from pohly/path-setup kubernetes-csi/csi-release-tools@6880b0c prow.sh: avoid creating paths unless really running tests kubernetes-csi/csi-release-tools@bc0504a Merge kubernetes-csi/csi-release-tools#140 from jsafrane/remove-unused-k8s-libs kubernetes-csi/csi-release-tools@5b1de1a go-get-kubernetes.sh: remove unused k8s libs kubernetes-csi/csi-release-tools@49b4269 Merge kubernetes-csi/csi-release-tools#120 from pohly/add-kubernetes-release kubernetes-csi/csi-release-tools@a1e1127 Merge kubernetes-csi/csi-release-tools#139 from pohly/kind-for-kubernetes-latest kubernetes-csi/csi-release-tools@1c0fb09 prow.sh: use KinD main for latest Kubernetes kubernetes-csi/csi-release-tools@1d77cfc Merge kubernetes-csi/csi-release-tools#138 from pohly/kind-update-0.10 kubernetes-csi/csi-release-tools@bff2fb7 prow.sh: KinD 0.10.0 kubernetes-csi/csi-release-tools@95eac33 Merge kubernetes-csi/csi-release-tools#137 from pohly/fix-go-version-check kubernetes-csi/csi-release-tools@437e431 verify-go-version.sh: fix check after removal of travis.yml kubernetes-csi/csi-release-tools@1748b16 Merge kubernetes-csi/csi-release-tools#136 from pohly/go-1.16 kubernetes-csi/csi-release-tools@ec844ea remove travis.yml, Go 1.16 kubernetes-csi/csi-release-tools@df76aba Merge kubernetes-csi/csi-release-tools#134 from andyzhangx/add-build-arg kubernetes-csi/csi-release-tools@e314a56 add build-arg ARCH for building multi-arch images, e.g. ARG ARCH FROM k8s.gcr.io/build-image/debian-base-${ARCH}:v2.1.3 kubernetes-csi/csi-release-tools@7bc70e5 Merge kubernetes-csi/csi-release-tools#129 from pohly/squash-documentation kubernetes-csi/csi-release-tools@e0b02e7 README.md: document usage of --squash kubernetes-csi/csi-release-tools@316cb95 Merge kubernetes-csi/csi-release-tools#132 from yiyang5055/bugfix/boilerplate kubernetes-csi/csi-release-tools@26e2ab1 fix: default boilerplate path kubernetes-csi/csi-release-tools@1add8c1 Merge kubernetes-csi/csi-release-tools#133 from pohly/kubernetes-1.20-tag kubernetes-csi/csi-release-tools@3e811d6 prow.sh: fix "on-master" prow jobs kubernetes-csi/csi-release-tools@1d60e77 Merge kubernetes-csi/csi-release-tools#131 from pohly/kubernetes-1.20-tag kubernetes-csi/csi-release-tools@9f10459 prow.sh: support building Kubernetes for a specific version kubernetes-csi/csi-release-tools@f7e7ee4 docs: steps for adding testing against new Kubernetes release kubernetes-csi/csi-release-tools@fe1f284 Merge kubernetes-csi/csi-release-tools#121 from kvaps/namespace-check kubernetes-csi/csi-release-tools@8fdf0f7 Merge kubernetes-csi/csi-release-tools#128 from fengzixu/master kubernetes-csi/csi-release-tools@1c94220 fix: fix a bug of csi-sanity kubernetes-csi/csi-release-tools@a4c41e6 Merge kubernetes-csi/csi-release-tools#127 from pohly/fix-boilerplate kubernetes-csi/csi-release-tools@ece0f50 check namespace for snapshot-controller kubernetes-csi/csi-release-tools@dbd8967 verify-boilerplate.sh: fix path to script kubernetes-csi/csi-release-tools@9289fd1 Merge kubernetes-csi/csi-release-tools#125 from sachinkumarsingh092/optional-spelling-boilerplate-checks kubernetes-csi/csi-release-tools@ad29307 Make the spelling and boilerplate checks optional kubernetes-csi/csi-release-tools@5f06d02 Merge kubernetes-csi/csi-release-tools#124 from sachinkumarsingh092/fix-spellcheck-boilerplate-tests kubernetes-csi/csi-release-tools@48186eb Fix spelling and boilerplate errors kubernetes-csi/csi-release-tools@71690af Merge kubernetes-csi/csi-release-tools#122 from sachinkumarsingh092/include-spellcheck-boilerplate-tests kubernetes-csi/csi-release-tools@981be3f Adding spelling and boilerplate checks. kubernetes-csi/csi-release-tools@2bb7525 Merge kubernetes-csi/csi-release-tools#117 from fengzixu/master kubernetes-csi/csi-release-tools@3b6d17b Merge kubernetes-csi/csi-release-tools#118 from pohly/cloud-build-timeout kubernetes-csi/csi-release-tools@9318c6c cloud build: double the timeout, now 1 hour kubernetes-csi/csi-release-tools@4ab8b15 use the tag to replace commit of csi-test kubernetes-csi/csi-release-tools@5d74e45 change the csi-test import path to v4 kubernetes-csi/csi-release-tools@7dcd0a9 upgrade csi-test to v4.0.2 kubernetes-csi/csi-release-tools@86ff580 Merge kubernetes-csi/csi-release-tools#116 from andyzhangx/export-image-name kubernetes-csi/csi-release-tools@c3a9662 allow export image name and registry name kubernetes-csi/csi-release-tools@c6a88c6 Merge kubernetes-csi/csi-release-tools#113 from xing-yang/install_snapshot_controller kubernetes-csi/csi-release-tools@45ec4c6 Fix the install of snapshot CRDs and controller kubernetes-csi/csi-release-tools@5d874cc Merge kubernetes-csi/csi-release-tools#112 from xing-yang/cleanup kubernetes-csi/csi-release-tools@79bbca7 Cleanup kubernetes-csi/csi-release-tools@d437673 Merge kubernetes-csi/csi-release-tools#111 from xing-yang/update_snapshot_v1_rc kubernetes-csi/csi-release-tools@57718f8 Update snapshot CRD version kubernetes-csi/csi-release-tools@4aff857 Merge kubernetes-csi/csi-release-tools#109 from pohly/alpha-test-defaults kubernetes-csi/csi-release-tools@0427289 Merge kubernetes-csi/csi-release-tools#110 from pohly/kind-0.9-bazel-build-workaround kubernetes-csi/csi-release-tools@9a370ab prow.sh: work around "kind build node-image" failure kubernetes-csi/csi-release-tools@522361e prow.sh: only run alpha tests for latest Kubernetes release kubernetes-csi/csi-release-tools@22c0395 Merge kubernetes-csi/csi-release-tools#108 from bnrjee/master kubernetes-csi/csi-release-tools@b5b447b Add go ldflags using LDFLAGS at the time of compilation kubernetes-csi/csi-release-tools@16f4afb Merge kubernetes-csi/csi-release-tools#107 from pohly/kind-update kubernetes-csi/csi-release-tools@7bcee13 prow.sh: update to kind 0.9, support Kubernetes 1.19 kubernetes-csi/csi-release-tools@df518fb prow.sh: usage of Bazel optional kubernetes-csi/csi-release-tools@c3afd42 Merge kubernetes-csi/csi-release-tools#104 from xing-yang/snapshot kubernetes-csi/csi-release-tools@dde93b2 Update to snapshot-controller v3.0.0 kubernetes-csi/csi-release-tools@a0f195c Merge kubernetes-csi/csi-release-tools#106 from msau42/fix-canary kubernetes-csi/csi-release-tools@7100c12 Only set staging registry when running canary job kubernetes-csi/csi-release-tools@b3c65f9 Merge kubernetes-csi/csi-release-tools#99 from msau42/add-release-process kubernetes-csi/csi-release-tools@e53f3e8 Merge kubernetes-csi/csi-release-tools#103 from msau42/fix-canary kubernetes-csi/csi-release-tools@d129462 Document new method for adding CI jobs are new K8s versions kubernetes-csi/csi-release-tools@e73c2ce Use staging registry for canary tests kubernetes-csi/csi-release-tools@2c09846 Add cleanup instructions to release-notes generation kubernetes-csi/csi-release-tools@60e1cd3 Merge kubernetes-csi/csi-release-tools#98 from pohly/kubernetes-1-19-fixes kubernetes-csi/csi-release-tools@0979c09 prow.sh: fix E2E suite for Kubernetes >= 1.18 kubernetes-csi/csi-release-tools@3b4a2f1 prow.sh: fix installing Go for Kubernetes 1.19.0 kubernetes-csi/csi-release-tools@1fbb636 Merge kubernetes-csi/csi-release-tools#97 from pohly/go-1.15 kubernetes-csi/csi-release-tools@82d108a switch to Go 1.15 kubernetes-csi/csi-release-tools@d8a2530 Merge kubernetes-csi/csi-release-tools#95 from msau42/add-release-process kubernetes-csi/csi-release-tools@843bddc Add steps on promoting release images kubernetes-csi/csi-release-tools@0345a83 Merge kubernetes-csi/csi-release-tools#94 from linux-on-ibm-z/bump-timeout kubernetes-csi/csi-release-tools@1fdf2d5 cloud build: bump timeout in Prow job kubernetes-csi/csi-release-tools@41ec6d1 Merge kubernetes-csi/csi-release-tools#93 from animeshk08/patch-1 kubernetes-csi/csi-release-tools@5a54e67 filter-junit: Fix gofmt error kubernetes-csi/csi-release-tools@0676fcb Merge kubernetes-csi/csi-release-tools#92 from animeshk08/patch-1 kubernetes-csi/csi-release-tools@36ea4ff filter-junit: Fix golint error kubernetes-csi/csi-release-tools@f5a4203 Merge kubernetes-csi/csi-release-tools#91 from cyb70289/arm64 kubernetes-csi/csi-release-tools@43e50d6 prow.sh: enable building arm64 image kubernetes-csi/csi-release-tools@0d5bd84 Merge kubernetes-csi/csi-release-tools#90 from pohly/k8s-staging-sig-storage kubernetes-csi/csi-release-tools@3df86b7 cloud build: k8s-staging-sig-storage kubernetes-csi/csi-release-tools@c5fd961 Merge kubernetes-csi/csi-release-tools#89 from pohly/cloud-build-binfmt kubernetes-csi/csi-release-tools@db0c2a7 cloud build: initialize support for running commands in Dockerfile kubernetes-csi/csi-release-tools@be902f4 Merge kubernetes-csi/csi-release-tools#88 from pohly/multiarch-windows-fix kubernetes-csi/csi-release-tools@340e082 build.make: optional inclusion of Windows in multiarch images kubernetes-csi/csi-release-tools@5231f05 build.make: properly declare push-multiarch kubernetes-csi/csi-release-tools@4569f27 build.make: fix push-multiarch ambiguity kubernetes-csi/csi-release-tools@17dde9e Merge kubernetes-csi/csi-release-tools#87 from pohly/cloud-build kubernetes-csi/csi-release-tools@bd41690 cloud build: initial set of shared files kubernetes-csi/csi-release-tools@9084fec Merge kubernetes-csi/csi-release-tools#81 from msau42/add-release-process kubernetes-csi/csi-release-tools@6f2322e Update patch release notes generation command kubernetes-csi/csi-release-tools@0fcc3b1 Merge kubernetes-csi/csi-release-tools#78 from ggriffiths/fix_csi_snapshotter_rbac_version_set kubernetes-csi/csi-release-tools@d8c76fe Support local snapshot RBAC for pull jobs kubernetes-csi/csi-release-tools@c1bdf5b Merge kubernetes-csi/csi-release-tools#80 from msau42/add-release-process kubernetes-csi/csi-release-tools@ea1f94a update release tools instructions kubernetes-csi/csi-release-tools@152396e Merge kubernetes-csi/csi-release-tools#77 from ggriffiths/snapshotter201_update kubernetes-csi/csi-release-tools@7edc146 Update snapshotter to version 2.0.1 kubernetes-csi/csi-release-tools@4cf843f Merge kubernetes-csi/csi-release-tools#76 from pohly/build-targets kubernetes-csi/csi-release-tools@3863a0f build for multiple platforms only in CI, add s390x kubernetes-csi/csi-release-tools@8322a7d Merge kubernetes-csi/csi-release-tools#72 from pohly/hostpath-update kubernetes-csi/csi-release-tools@7c5a89c prow.sh: use 1.3.0 hostpath driver for testing kubernetes-csi/csi-release-tools@b8587b2 Merge kubernetes-csi/csi-release-tools#71 from wozniakjan/test-vet kubernetes-csi/csi-release-tools@fdb3218 Change 'make test-vet' to call 'go vet' kubernetes-csi/csi-release-tools@d717c8c Merge kubernetes-csi/csi-release-tools#69 from pohly/test-driver-config kubernetes-csi/csi-release-tools@a1432bc Merge kubernetes-csi/csi-release-tools#70 from pohly/kubelet-feature-gates kubernetes-csi/csi-release-tools@5f74333 prow.sh: also configure feature gates for kubelet kubernetes-csi/csi-release-tools@84f78b1 prow.sh: generic driver installation kubernetes-csi/csi-release-tools@3c34b4f Merge kubernetes-csi/csi-release-tools#67 from windayski/fix-link kubernetes-csi/csi-release-tools@fa90abd fix incorrect link kubernetes-csi/csi-release-tools@ff3cc3f Merge kubernetes-csi/csi-release-tools#54 from msau42/add-release-process kubernetes-csi/csi-release-tools@ac8a021 Document the process for releasing a new sidecar kubernetes-csi/csi-release-tools@23be652 Merge kubernetes-csi/csi-release-tools#65 from msau42/update-hostpath kubernetes-csi/csi-release-tools@6582f2f Update hostpath driver version to get fix for connection-timeout kubernetes-csi/csi-release-tools@4cc9174 Merge kubernetes-csi/csi-release-tools#64 from ggriffiths/snapshotter_2_version_update kubernetes-csi/csi-release-tools@8191eab Update snapshotter to version v2.0.0 kubernetes-csi/csi-release-tools@3c463fb Merge kubernetes-csi/csi-release-tools#61 from msau42/enable-snapshots kubernetes-csi/csi-release-tools@8b0316c Fix overriding of junit results by using unique names for each e2e run kubernetes-csi/csi-release-tools@5f444b8 Merge kubernetes-csi/csi-release-tools#60 from saad-ali/updateHostpathVersion kubernetes-csi/csi-release-tools@af9549b Update prow hostpath driver version to 1.3.0-rc2 kubernetes-csi/csi-release-tools@f6c74b3 Merge kubernetes-csi/csi-release-tools#57 from ggriffiths/version_gt_kubernetes_fix kubernetes-csi/csi-release-tools@fc80975 Fix version_gt to work with kubernetes prefix kubernetes-csi/csi-release-tools@9f1f3dd Merge kubernetes-csi/csi-release-tools#56 from msau42/enable-snapshots kubernetes-csi/csi-release-tools@b98b2ae Enable snapshot tests in 1.17 to be run in non-alpha jobs. kubernetes-csi/csi-release-tools@9ace020 Merge kubernetes-csi/csi-release-tools#52 from msau42/update-readme kubernetes-csi/csi-release-tools@540599b Merge kubernetes-csi/csi-release-tools#53 from msau42/fix-make kubernetes-csi/csi-release-tools@a4e6299 fix syntax for ppc64le build kubernetes-csi/csi-release-tools@771ca6f Merge kubernetes-csi/csi-release-tools#49 from ggriffiths/prowsh_improve_version_gt kubernetes-csi/csi-release-tools@d7c69d2 Merge kubernetes-csi/csi-release-tools#51 from msau42/enable-multinode kubernetes-csi/csi-release-tools@4ad6949 Improve snapshot pod running checks and improve version_gt kubernetes-csi/csi-release-tools@53888ae Improve README by adding an explicit Kubernetes dependency section kubernetes-csi/csi-release-tools@9a7a685 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 skipped kubernetes-csi/csi-release-tools@4ff2f5f Merge kubernetes-csi/csi-release-tools#50 from darkowlzz/kind-0.6.0 kubernetes-csi/csi-release-tools@80bba1f Use kind v0.6.0 kubernetes-csi/csi-release-tools@6d674a7 Merge kubernetes-csi/csi-release-tools#47 from Pensu/multi-arch kubernetes-csi/csi-release-tools@8adde49 Merge kubernetes-csi/csi-release-tools#45 from ggriffiths/snapshot_beta_crds kubernetes-csi/csi-release-tools@003c14b Add snapshotter CRDs after cluster setup kubernetes-csi/csi-release-tools@a41f386 Merge kubernetes-csi/csi-release-tools#46 from mucahitkurt/kind-cluster-cleanup kubernetes-csi/csi-release-tools@1eaaaa1 Delete kind cluster after tests run. kubernetes-csi/csi-release-tools@83a4ef1 Adding build for ppc64le kubernetes-csi/csi-release-tools@4fcafec Merge kubernetes-csi/csi-release-tools#43 from pohly/system-pod-logging kubernetes-csi/csi-release-tools@f41c135 prow.sh: also log output of system containers kubernetes-csi/csi-release-tools@ee22a9c Merge kubernetes-csi/csi-release-tools#42 from pohly/use-vendor-dir kubernetes-csi/csi-release-tools@8067845 travis.yml: also use vendor directory kubernetes-csi/csi-release-tools@23df4ae prow.sh: use vendor directory if available kubernetes-csi/csi-release-tools@a53bd4c Merge kubernetes-csi/csi-release-tools#41 from pohly/go-version kubernetes-csi/csi-release-tools@c8a1c4a better handling of Go version kubernetes-csi/csi-release-tools@5e773d2 update CI to use Go 1.13.3 kubernetes-csi/csi-release-tools@f419d74 Merge kubernetes-csi/csi-release-tools#40 from msau42/add-1.16 kubernetes-csi/csi-release-tools@e0fde8c Add new variables for 1.16 and remove 1.13 kubernetes-csi/csi-release-tools@adf00fe Merge kubernetes-csi/csi-release-tools#36 from msau42/full-clone kubernetes-csi/csi-release-tools@f1697d2 Do full git clones in travis. Shallow clones are causing test-subtree errors when the depth is exactly 50. kubernetes-csi/csi-release-tools@2c81919 Merge kubernetes-csi/csi-release-tools#34 from pohly/go-mod-tidy kubernetes-csi/csi-release-tools@518d6af Merge kubernetes-csi/csi-release-tools#35 from ddebroy/winbld2 kubernetes-csi/csi-release-tools@2d6b3ce Build Windows only for amd64 kubernetes-csi/csi-release-tools@c1078a6 go-get-kubernetes.sh: automate Kubernetes dependency handling kubernetes-csi/csi-release-tools@194289a update Go mod support kubernetes-csi/csi-release-tools@0affdf9 Merge kubernetes-csi/csi-release-tools#33 from gnufied/enable-hostpath-expansion kubernetes-csi/csi-release-tools@6208f6a Enable hostpath expansion kubernetes-csi/csi-release-tools@6ecaa76 Merge kubernetes-csi/csi-release-tools#30 from msau42/fix-windows kubernetes-csi/csi-release-tools@ea2f1b5 build windows binaries with .exe suffix kubernetes-csi/csi-release-tools@2d33550 Merge kubernetes-csi/csi-release-tools#29 from mucahitkurt/create-2-node-kind-cluster kubernetes-csi/csi-release-tools@a8ea8bc create 2-node kind cluster since topology support is added to hostpath driver kubernetes-csi/csi-release-tools@df8530d Merge kubernetes-csi/csi-release-tools#27 from pohly/dep-vendor-check kubernetes-csi/csi-release-tools@35ceaed prow.sh: install dep if needed kubernetes-csi/csi-release-tools@f85ab5a Merge kubernetes-csi/csi-release-tools#26 from ddebroy/windows1 kubernetes-csi/csi-release-tools@9fba09b Add rule for building Windows binaries kubernetes-csi/csi-release-tools@0400867 Merge kubernetes-csi/csi-release-tools#25 from msau42/fix-master-jobs kubernetes-csi/csi-release-tools@dc0a5d8 Update kind to v0.5.0 kubernetes-csi/csi-release-tools@aa85b82 Merge kubernetes-csi/csi-release-tools#23 from msau42/fix-master-jobs kubernetes-csi/csi-release-tools@f46191d Kubernetes master changed the way that releases are tagged, which needed changes to kind. There are 3 changes made to prow.sh: kubernetes-csi/csi-release-tools@1cac3af Merge kubernetes-csi/csi-release-tools#22 from msau42/add-1.15-jobs kubernetes-csi/csi-release-tools@0c0dc30 prow.sh: tag master images with a large version number kubernetes-csi/csi-release-tools@f4f73ce Merge kubernetes-csi/csi-release-tools#21 from msau42/add-1.15-jobs kubernetes-csi/csi-release-tools@4e31f07 Change default hostpath driver name to hostpath.csi.k8s.io kubernetes-csi/csi-release-tools@4b6fa4a Update hostpath version for sidecar testing to v1.2.0-rc2 kubernetes-csi/csi-release-tools@ecc7918 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. kubernetes-csi/csi-release-tools@a6f21d4 Add variables for 1.15 kubernetes-csi/csi-release-tools@db8abb6 Merge kubernetes-csi/csi-release-tools#20 from pohly/test-driver-config kubernetes-csi/csi-release-tools@b2f4e05 prow.sh: flexible test driver config kubernetes-csi/csi-release-tools@0399988 Merge kubernetes-csi/csi-release-tools#19 from pohly/go-mod-vendor kubernetes-csi/csi-release-tools@066143d build.make: allow repos to use 'go mod' for vendoring kubernetes-csi/csi-release-tools@0bee749 Merge kubernetes-csi/csi-release-tools#18 from pohly/go-version kubernetes-csi/csi-release-tools@e157b6b update to Go 1.12.4 kubernetes-csi/csi-release-tools@88dc9a4 Merge kubernetes-csi/csi-release-tools#17 from pohly/prow kubernetes-csi/csi-release-tools@0fafc66 prow.sh: skip sanity testing if component doesn't support it kubernetes-csi/csi-release-tools@bcac1c1 Merge kubernetes-csi/csi-release-tools#16 from pohly/prow kubernetes-csi/csi-release-tools@0b10f6a prow.sh: update csi-driver-host-path kubernetes-csi/csi-release-tools@0c2677e Merge kubernetes-csi/csi-release-tools#15 from pengzhisun/master kubernetes-csi/csi-release-tools@ff9bce4 Replace 'return' to 'exit' to fix shellcheck error git-subtree-dir: release-tools git-subtree-split: 6616a6b5294b6df39cfce37f4fce7cdce0a77583
1 parent c60f382 commit d6c2e3f

24 files changed

+1649
-256
lines changed

.prow.sh

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,23 @@
11
#! /bin/bash -e
2+
3+
# Copyright 2021 The Kubernetes Authors.
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
28
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
317
# This is for testing csi-release-tools itself in Prow. All other
418
# repos use prow.sh for that, but as csi-release-tools isn't a normal
519
# repo with some Go code in it, it has a custom Prow test script.
620

721
./verify-shellcheck.sh "$(pwd)"
22+
./verify-spelling.sh "$(pwd)"
23+
./verify-boilerplate.sh "$(pwd)"

README.md

Lines changed: 73 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ The expected repository layout is:
2121
Dockerfile in the root when only building a single command
2222
- `Makefile` - includes `release-tools/build.make` and sets
2323
configuration variables
24-
- `.travis.yml` - a symlink to `release-tools/.travis.yml`
24+
- `.prow.sh` script which imports `release-tools/prow.sh`
25+
and may contain further customization
26+
- `.cloudbuild.sh` and `cloudbuild.yaml` as symlinks to
27+
the corresponding files in `release-tools` or (if necessary)
28+
as custom files
2529

2630
To create a release, tag a certain revision with a name that
2731
starts with `v`, for example `v1.0.0`, then `make push`
@@ -44,10 +48,17 @@ is the recommended way of maintaining a copy of the rules inside the
4448
changes also locally, test them and then push them back to the shared
4549
repository at a later time.
4650

51+
We no longer care about importing the full commit history, so `--squash` should be used
52+
when submitting a `release-tools` update. Also make sure that the PR for that
53+
contains the automatically generated commit message in the PR description.
54+
It contains the list of individual commits that were squashed. The script from
55+
https://github.com/kubernetes-csi/csi-release-tools/issues/7 can create such
56+
PRs automatically.
57+
4758
Cheat sheet:
4859

49-
- `git subtree add --prefix=release-tools https://github.com/kubernetes-csi/csi-release-tools.git master` - add release tools to a repo which does not have them yet (only once)
50-
- `git subtree pull --prefix=release-tools https://github.com/kubernetes-csi/csi-release-tools.git master` - update local copy to latest upstream (whenever upstream changes)
60+
- `git subtree add --squash --prefix=release-tools https://github.com/kubernetes-csi/csi-release-tools.git master` - add release tools to a repo which does not have them yet (only once)
61+
- `git subtree pull --squash --prefix=release-tools https://github.com/kubernetes-csi/csi-release-tools.git master` - update local copy to latest upstream (whenever upstream changes)
5162
- edit, `git commit`, `git subtree push --prefix=release-tools [email protected]:<user>/csi-release-tools.git <my-new-or-existing-branch>` - push to a new branch before submitting a PR
5263

5364
verify-shellcheck.sh
@@ -81,7 +92,7 @@ on what is enabled in Prow, see
8192
https://github.com/kubernetes/test-infra/tree/master/config/jobs/kubernetes-csi
8293

8394
Test results for periodic jobs are visible in
84-
https://testgrid.k8s.io/sig-storage-csi
95+
https://testgrid.k8s.io/sig-storage-csi-ci
8596

8697
It is possible to reproduce the Prow testing locally on a suitable machine:
8798
- Linux host
@@ -106,3 +117,61 @@ Kubernetes releases:
106117

107118
CSI_PROW_KUBERNETES_VERSION=1.13.3 ./.prow.sh
108119
CSI_PROW_KUBERNETES_VERSION=latest ./.prow.sh
120+
121+
Dependencies and vendoring
122+
--------------------------
123+
124+
Most projects will (eventually) use `go mod` to manage
125+
dependencies. `dep` is also still supported by `csi-release-tools`,
126+
but not documented here because it's not recommended anymore.
127+
128+
The usual instructions for using [go
129+
modules](https://github.com/golang/go/wiki/Modules) apply. Here's a cheat sheet
130+
for some of the relevant commands:
131+
- list available updates: `GO111MODULE=on go list -u -m all`
132+
- update or add a single dependency: `GO111MODULE=on go get <package>`
133+
- update all dependencies to their next minor or patch release:
134+
`GO111MODULE=on go get ./...` (add `-u=patch` to limit to patch
135+
releases)
136+
- lock onto a specific version: `GO111MODULE=on go get <package>@<version>`
137+
- clean up `go.mod`: `GO111MODULE=on go mod tidy`
138+
- update vendor directory: `GO111MODULE=on go mod vendor`
139+
140+
`GO111MODULE=on` can be left out when using Go >= 1.13 or when the
141+
source is checked out outside of `$GOPATH`.
142+
143+
`go mod tidy` must be used to ensure that the listed dependencies are
144+
really still needed. Changing import statements or a tentative `go
145+
get` can result in stale dependencies.
146+
147+
The `test-vendor` verifies that it was used when run locally or in a
148+
pre-merge CI job. If a `vendor` directory is present, it will also
149+
verify that it's content is up-to-date.
150+
151+
The `vendor` directory is optional. It is still present in projects
152+
because it avoids downloading sources during CI builds. If this is no
153+
longer deemed necessary, then a project can also remove the directory.
154+
155+
Conversion of a repository that uses `dep` to `go mod` can be done with:
156+
157+
GO111MODULE=on go mod init
158+
release-tools/go-get-kubernetes.sh <current Kubernetes version from Gopkg.toml>
159+
GO111MODULE=on go mod tidy
160+
GO111MODULE=on go mod vendor
161+
git rm -f Gopkg.toml Gopkg.lock
162+
git add go.mod go.sum vendor
163+
164+
### Updating Kubernetes dependencies
165+
166+
When using packages that are part of the Kubernetes source code, the
167+
commands above are not enough because the [lack of semantic
168+
versioning](https://github.com/kubernetes/kubernetes/issues/72638)
169+
prevents `go mod` from finding newer releases. Importing directly from
170+
`kubernetes/kubernetes` also needs `replace` statements to override
171+
the fake `v0.0.0` versions
172+
(https://github.com/kubernetes/kubernetes/issues/79384). The
173+
`go-get-kubernetes.sh` script can be used to update all packages in
174+
lockstep to a different Kubernetes version. Example usage:
175+
```
176+
$ ./release-tools/go-get-kubernetes.sh 1.16.4
177+
```

SIDECAR_RELEASE_PROCESS.md

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
# Sidecar Release Process
2+
3+
This page describes the process for releasing a kubernetes-csi sidecar.
4+
5+
## Prerequisites
6+
7+
The release manager must:
8+
9+
* Be a member of the kubernetes-csi organization. Open an
10+
[issue](https://github.com/kubernetes/org/issues/new?assignees=&labels=area%2Fgithub-membership&template=membership.md&title=REQUEST%3A+New+membership+for+%3Cyour-GH-handle%3E) in
11+
kubernetes/org to request membership
12+
* Be a top level approver for the repository. To become a top level approver,
13+
the candidate must demonstrate ownership and deep knowledge of the repository
14+
through active maintenance, responding to and fixing issues, reviewing PRs,
15+
test triage.
16+
* Be part of the maintainers or admin group for the repository. admin is a
17+
superset of maintainers, only maintainers level is required for cutting a
18+
release. Membership can be requested by submitting a PR to kubernetes/org.
19+
[Example](https://github.com/kubernetes/org/pull/1467)
20+
21+
## Updating CI Jobs
22+
Whenever a new Kubernetes minor version is released, our kubernetes-csi CI jobs
23+
must be updated.
24+
25+
[Our CI jobs](https://k8s-testgrid.appspot.com/sig-storage-csi-ci) have the
26+
naming convention `<hostpath-deployment-version>-on-<kubernetes-version>`.
27+
28+
1. Jobs should be actively monitored to find and fix failures in sidecars and
29+
infrastructure changes early in the development cycle. Test failures are sent
30+
31+
1. "-on-master" jobs are the closest reflection to the new Kubernetes version.
32+
1. Fixes to our prow.sh CI script can be tested in the [CSI hostpath
33+
repo](https://github.com/kubernetes-csi/csi-driver-host-path) by modifying
34+
[prow.sh](https://github.com/kubernetes-csi/csi-driver-host-path/blob/master/release-tools/prow.sh)
35+
along with any overrides in
36+
[.prow.sh](https://github.com/kubernetes-csi/csi-driver-host-path/blob/master/.prow.sh)
37+
to mirror the failing environment. Once e2e tests are passing (verify-unit tests
38+
will fail), then the prow.sh changes can be submitted to [csi-release-tools](https://github.com/kubernetes-csi/csi-release-tools).
39+
1. Changes can then be updated in all the sidecar repos and hostpath driver repo
40+
by following the [update
41+
instructions](https://github.com/kubernetes-csi/csi-release-tools/blob/master/README.md#sharing-and-updating).
42+
1. New pull and CI jobs are configured by adding new K8s versions to the top of
43+
[gen-jobs.sh](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes-csi/gen-jobs.sh).
44+
New pull jobs that have been unverified should be initially made optional by
45+
setting the new K8s version as
46+
[experimental](https://github.com/kubernetes/test-infra/blob/a1858f46d6014480b130789df58b230a49203a64/config/jobs/kubernetes-csi/gen-jobs.sh#L40).
47+
1. Once new pull and CI jobs have been verified, and the new Kubernetes version
48+
is released, we can make the optional jobs required, and also remove the
49+
Kubernetes versions that are no longer supported.
50+
51+
## Release Process
52+
1. Identify all issues and ongoing PRs that should go into the release, and
53+
drive them to resolution.
54+
1. Download v2.8+ [K8s release notes
55+
generator](https://github.com/kubernetes/release/tree/master/cmd/release-notes)
56+
1. Generate release notes for the release. Replace arguments with the relevant
57+
information.
58+
* Clean up old cached information (also needed if you are generating release
59+
notes for multiple repos)
60+
```bash
61+
rm -rf /tmp/k8s-repo
62+
```
63+
* For new minor releases on master:
64+
```bash
65+
GITHUB_TOKEN=<token> release-notes --discover=mergebase-to-latest
66+
--github-org=kubernetes-csi --github-repo=external-provisioner
67+
--required-author="" --output out.md
68+
```
69+
* For new patch releases on a release branch:
70+
```bash
71+
GITHUB_TOKEN=<token> release-notes --discover=patch-to-latest --branch=release-1.1
72+
--github-org=kubernetes-csi --github-repo=external-provisioner
73+
--required-author="" --output out.md
74+
```
75+
1. Compare the generated output to the new commits for the release to check if
76+
any notable change missed a release note.
77+
1. Reword release notes as needed. Make sure to check notes for breaking
78+
changes and deprecations.
79+
1. If release is a new major/minor version, create a new `CHANGELOG-<major>.<minor>.md`
80+
file. Otherwise, add the release notes to the top of the existing CHANGELOG
81+
file for that minor version.
82+
1. Submit a PR for the CHANGELOG changes.
83+
1. Submit a PR for README changes, in particular, Compatibility, Feature status,
84+
and any other sections that may need updating.
85+
1. Check that all [canary CI
86+
jobs](https://k8s-testgrid.appspot.com/sig-storage-csi-ci) are passing,
87+
and that test coverage is adequate for the changes that are going into the release.
88+
1. Make sure that no new PRs have merged in the meantime, and no PRs are in
89+
flight and soon to be merged.
90+
1. Create a new release following a previous release as a template. Be sure to select the correct
91+
branch. This requires Github release permissions as required by the prerequisites.
92+
[external-provisioner example](https://github.com/kubernetes-csi/external-provisioner/releases/new)
93+
1. If release was a new major/minor version, create a new `release-<minor>`
94+
branch at that commit.
95+
1. Check [image build status](https://k8s-testgrid.appspot.com/sig-storage-image-build).
96+
1. Promote images from k8s-staging-sig-storage to k8s.gcr.io/sig-storage. From
97+
the [k8s image
98+
repo](https://github.com/kubernetes/k8s.io/tree/master/k8s.gcr.io/images/k8s-staging-sig-storage),
99+
run `./generate.sh > images.yaml`, and send a PR with the updated images.
100+
Once merged, the image promoter will copy the images from staging to prod.
101+
1. Update [kubernetes-csi/docs](https://github.com/kubernetes-csi/docs) sidecar
102+
and feature pages with the new released version.
103+
1. After all the sidecars have been released, update
104+
CSI hostpath driver with the new sidecars in the [CSI repo](https://github.com/kubernetes-csi/csi-driver-host-path/tree/master/deploy)
105+
and [k/k
106+
in-tree](https://github.com/kubernetes/kubernetes/tree/master/test/e2e/testing-manifests/storage-csi/hostpath/hostpath)
107+
108+
## Adding support for a new Kubernetes release
109+
110+
1. Add the new release to `k8s_versions` in
111+
https://github.com/kubernetes/test-infra/blob/090dec5dd535d5f61b7ba52e671a810f5fc13dfd/config/jobs/kubernetes-csi/gen-jobs.sh#L25
112+
to enable generating a job for it. Set `experimental_k8s_version`
113+
in
114+
https://github.com/kubernetes/test-infra/blob/090dec5dd535d5f61b7ba52e671a810f5fc13dfd/config/jobs/kubernetes-csi/gen-jobs.sh#L40
115+
to ensure that the new jobs aren't run for PRs unless explicitly
116+
requested. Generate and submit the new jobs.
117+
1. Create a test PR to try out the new job in some repo with `/test
118+
pull-kubernetes-csi-<repo>-<x.y>-on-kubernetes-<x.y>` where x.y
119+
matches the Kubernetes release. Alternatively, run .prow.sh in that
120+
repo locally with `CSI_PROW_KUBERNETES_VERSION=x.y.z`.
121+
1. Optional: update to a [new
122+
release](https://github.com/kubernetes-sigs/kind/tags) of kind with
123+
pre-built images for the new Kubernetes release. This is optional
124+
if the current version of kind is able to build images for the new
125+
Kubernetes release. However, jobs require less resources when they
126+
don't need to build those images from the Kubernetes source code.
127+
This change needs to be tried out in a PR against a component
128+
first, then get submitted against csi-release-tools.
129+
1. Optional: propagate the updated csi-release-tools to all components
130+
with the script from
131+
https://github.com/kubernetes-csi/csi-release-tools/issues/7#issuecomment-707025402
132+
1. Once it is likely to work in all components, unset
133+
`experimental_k8s_version` and submit the updated jobs.
134+
1. Once all sidecars for the new Kubernetes release are released,
135+
either bump the version number of the images in the existing
136+
[csi-driver-host-path
137+
deployments](https://github.com/kubernetes-csi/csi-driver-host-path/tree/master/deploy)
138+
and/or create a new deployment, depending on what Kubernetes
139+
release an updated sidecar is compatible with. If no new deployment
140+
is needed, then add a symlink to document that there intentionally
141+
isn't a separate deployment. This symlink is not needed for Prow
142+
testing because that will use "kubernetes-latest" as fallback.
143+
Update that link when creating a new deployment.
144+
1. Create a new csi-driver-host-path release.
145+
1. Bump `CSI_PROW_DRIVER_VERSION` in prow.sh to that new release and
146+
(eventually) roll that change out to all repos by updating
147+
`release-tools` in them. This is used when testing manually. The
148+
Prow jobs override that value, so also update
149+
`hostpath_driver_version` in
150+
https://github.com/kubernetes/test-infra/blob/91b04e6af3a40a9bcff25aa030850a4721e2dd2b/config/jobs/kubernetes-csi/gen-jobs.sh#L46-L47
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright YEAR The Kubernetes Authors.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.

boilerplate/boilerplate.Makefile.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright YEAR The Kubernetes Authors.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.

boilerplate/boilerplate.bzl.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright YEAR The Kubernetes Authors.
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.

boilerplate/boilerplate.go.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
/*
2+
Copyright YEAR The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/

0 commit comments

Comments
 (0)