From d23abe87af245d13e7cfff2e45afd681fdbc1c33 Mon Sep 17 00:00:00 2001 From: Sunny Song Date: Wed, 20 Dec 2023 19:24:41 +0000 Subject: [PATCH 1/2] Squashed 'release-tools/' changes from f8c8cc4..b54c1ba b54c1ba Merge pull request #246 from xing-yang/go_1.21 5436c81 Change go version to 1.21.5 267b40e Merge pull request #244 from carlory/sig-storage b42e5a2 nominate self (carlory) as kubernetes-csi reviewer a17f536 Merge pull request #210 from sunnylovestiramisu/sidecar 011033d Use set -x instead of die 5deaf66 Add wrapper script for sidecar release git-subtree-dir: release-tools git-subtree-split: b54c1ba49469d4d5d1b5d75285e8868ffe3d328f --- KUBERNETES_CSI_OWNERS_ALIASES | 1 + SIDECAR_RELEASE_PROCESS.md | 3 + go-modules-update.sh | 129 ++++++++++++++++++++++++++++++++++ prow.sh | 2 +- 4 files changed, 134 insertions(+), 1 deletion(-) create mode 100755 go-modules-update.sh diff --git a/KUBERNETES_CSI_OWNERS_ALIASES b/KUBERNETES_CSI_OWNERS_ALIASES index 04a07bfb..6e46cf29 100644 --- a/KUBERNETES_CSI_OWNERS_ALIASES +++ b/KUBERNETES_CSI_OWNERS_ALIASES @@ -18,6 +18,7 @@ aliases: # when they are temporarily unable to review PRs. kubernetes-csi-reviewers: - andyzhangx + - carlory - chrishenzie - ggriffiths - gnufied diff --git a/SIDECAR_RELEASE_PROCESS.md b/SIDECAR_RELEASE_PROCESS.md index 338a6229..4f5d033c 100644 --- a/SIDECAR_RELEASE_PROCESS.md +++ b/SIDECAR_RELEASE_PROCESS.md @@ -46,6 +46,9 @@ naming convention `-on-`. ## Release Process 1. Identify all issues and ongoing PRs that should go into the release, and drive them to resolution. +1. Update dependencies for sidecars via + [go-modules-update.sh](https://github.com/kubernetes-csi/csi-driver-host-path/blob/HEAD/release-tools/go-modules-update.sh), + and get PRs approved and merged. 1. Check that all [canary CI jobs](https://testgrid.k8s.io/sig-storage-csi-ci) are passing, and that test coverage is adequate for the changes that are going into the release. diff --git a/go-modules-update.sh b/go-modules-update.sh new file mode 100755 index 00000000..bd605e97 --- /dev/null +++ b/go-modules-update.sh @@ -0,0 +1,129 @@ +#!/bin/sh + +# Copyright 2023 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. + + +# Usage: go-modules-update.sh +# +# Batch update dependencies for sidecars. +# +# Required environment variables +# CSI_RELEASE_TOKEN: Github token needed for generating release notes +# GITHUB_USER: Github username to create PRs with +# +# Instructions: +# 1. Login with "gh auth login" +# 2. Copy this script to the kubernetes-csi directory (one directory above the +# repos) +# 3. Update the repos and master branch so locally it has the latest upstream +# change +# 4. Set environment variables +# 5. Run script from the kubernetes-csi directory +# +# Caveats: +# - This script doesn't handle interface incompatibility of updates. +# You need to resolve interface incompatibility case by case. The +# most frequent case is to update the interface(new parameters, +# name change of the method, etc.)in the sidecar repo and make sure +# the build and test pass. + + +set -e +set -x + +MAX_RETRY=10 + +# Get the options +while getopts ":u:v:" option; do + case $option in + u) # Set username + username=$OPTARG;; + v) # Set version + v=$OPTARG;; + \?) # Invalid option + echo "Error: Invalid option: $OPTARG" + exit;; + esac +done + +# Only need to do this once +gh auth login + +while read -r repo branches; do + if [ "$repo" != "#" ]; then + ( + cd "$repo" + git fetch origin + for i in $branches; do + if [ "$(git rev-parse --verify "module-update-$i" 2>/dev/null)" ]; then + git checkout master && git branch -d "module-update-$i" + fi + git checkout -B "module-update-$i" "origin/$i" + rm -rf .git/MERGE* + if ! git subtree pull --squash --prefix=release-tools https://github.com/kubernetes-csi/csi-release-tools.git master; then + # Sometimes "--squash" leads to merge conflicts. Because we know that "release-tools" + # is an unmodified copy of csi-release-tools, we can automatically resolve that + # by replacing it completely. + if [ -e .git/MERGE_MSG ] && [ -e .git/FETCH_HEAD ] && grep -q "^# Conflict" .git/MERGE_MSG; then + rm -rf release-tools + mkdir release-tools + git archive FETCH_HEAD | tar -C release-tools -xf - + git add release-tools + git commit --file=.git/MERGE_MSG + else + exit 1 + fi + fi + RETRY=0 + while ! ./release-tools/go-get-kubernetes.sh -p "$v" && RETRY < $MAX_RETRY + do + RETRY=$((RETRY+1)) + go mod tidy && go mod vendor && go mod tidy + done + go mod tidy && go mod vendor && go mod tidy + git add --all + git commit -m "Update dependency go modules for k8s v$v" + git remote set-url origin "https://github.com/$username/$repo.git" + make test + git push origin "module-update-$i" --force + # Create PR +prbody=$(cat < Date: Thu, 21 Dec 2023 17:25:01 +0000 Subject: [PATCH 2/2] Add changelog for v0.17.0 --- CHANGELOG/CHANGELOG-0.17.md | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 CHANGELOG/CHANGELOG-0.17.md diff --git a/CHANGELOG/CHANGELOG-0.17.md b/CHANGELOG/CHANGELOG-0.17.md new file mode 100644 index 00000000..0077b98e --- /dev/null +++ b/CHANGELOG/CHANGELOG-0.17.md @@ -0,0 +1,41 @@ +# Release notes for v0.17.0 + +# Changelog since v0.16.0 + +## Changes by Kind + +### Uncategorized + +## Dependencies + +### Added +- github.com/gorilla/websocket: [v1.5.0](https://github.com/gorilla/websocket/tree/v1.5.0) + +### Changed +- github.com/container-storage-interface/spec: [v1.8.0 → v1.9.0](https://github.com/container-storage-interface/spec/compare/v1.8.0...v1.9.0) +- github.com/emicklei/go-restful/v3: [v3.9.0 → v3.11.0](https://github.com/emicklei/go-restful/v3/compare/v3.9.0...v3.11.0) +- github.com/evanphx/json-patch: [v5.6.0+incompatible → v4.12.0+incompatible](https://github.com/evanphx/json-patch/compare/v5.6.0...v4.12.0) +- github.com/go-logr/logr: [v1.2.4 → v1.3.0](https://github.com/go-logr/logr/compare/v1.2.4...v1.3.0) +- github.com/google/go-cmp: [v0.5.9 → v0.6.0](https://github.com/google/go-cmp/compare/v0.5.9...v0.6.0) +- github.com/grpc-ecosystem/grpc-gateway/v2: [v2.7.0 → v2.16.0](https://github.com/grpc-ecosystem/grpc-gateway/v2/compare/v2.7.0...v2.16.0) +- github.com/onsi/ginkgo/v2: [v2.9.4 → v2.13.0](https://github.com/onsi/ginkgo/v2/compare/v2.9.4...v2.13.0) +- github.com/onsi/gomega: [v1.27.6 → v1.29.0](https://github.com/onsi/gomega/compare/v1.27.6...v1.29.0) +- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.35.1 → v0.44.0 +- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.10.0 → v1.19.0 +- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.10.0 → v1.19.0 +- go.opentelemetry.io/otel/sdk: v1.10.0 → v1.19.0 +- go.opentelemetry.io/proto/otlp: v0.19.0 → v1.0.0 +- golang.org/x/tools: v0.8.0 → v0.12.0 +- k8s.io/api: v0.28.0 → v0.29.0 +- k8s.io/apimachinery: v0.28.0 → v0.29.0 +- k8s.io/client-go: v0.28.0 → v0.29.0 +- k8s.io/component-base: v0.28.0 → v0.29.0 +- k8s.io/gengo: 485abfe → 9cce18d +- k8s.io/klog/v2: v2.100.1 → v2.110.1 +- k8s.io/kube-openapi: 2695361 → 2dd684a +- k8s.io/utils: d93618c → 3b25d92 +- sigs.k8s.io/structured-merge-diff/v4: v4.2.3 → v4.4.1 + +### Removed +- go.opentelemetry.io/otel/exporters/otlp/internal/retry: v1.10.0 +- go.uber.org/goleak: v1.2.1