diff --git a/go.mod b/go.mod index 9de37980e..559da6a90 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/kubernetes-csi/external-attacher -go 1.22.3 +go 1.22.5 require ( github.com/container-storage-interface/spec v1.9.0 @@ -8,14 +8,14 @@ require ( github.com/evanphx/json-patch v5.9.0+incompatible github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 - github.com/kubernetes-csi/csi-lib-utils v0.19.0-beta.0 + github.com/kubernetes-csi/csi-lib-utils v0.19.0 github.com/kubernetes-csi/csi-test/v5 v5.2.0 google.golang.org/grpc v1.65.0 - k8s.io/api v0.31.0-rc.0 - k8s.io/apimachinery v0.31.0-rc.0 - k8s.io/client-go v0.31.0-rc.0 - k8s.io/component-base v0.31.0-rc.0 - k8s.io/csi-translation-lib v0.31.0-rc.0 + k8s.io/api v0.31.0 + k8s.io/apimachinery v0.31.0 + k8s.io/client-go v0.31.0 + k8s.io/component-base v0.31.0 + k8s.io/csi-translation-lib v0.31.0 k8s.io/klog/v2 v2.130.1 ) @@ -78,12 +78,12 @@ require ( sigs.k8s.io/yaml v1.4.0 // indirect ) -replace k8s.io/api => k8s.io/api v0.31.0-rc.0 +replace k8s.io/api => k8s.io/api v0.31.0 -replace k8s.io/apimachinery => k8s.io/apimachinery v0.31.0-rc.0 +replace k8s.io/apimachinery => k8s.io/apimachinery v0.31.0 -replace k8s.io/client-go => k8s.io/client-go v0.31.0-rc.0 +replace k8s.io/client-go => k8s.io/client-go v0.31.0 -replace k8s.io/component-base => k8s.io/component-base v0.31.0-rc.0 +replace k8s.io/component-base => k8s.io/component-base v0.31.0 -replace k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.31.0-rc.0 +replace k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.31.0 diff --git a/go.sum b/go.sum index 88c346bdb..a6a40dbb3 100644 --- a/go.sum +++ b/go.sum @@ -67,8 +67,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kubernetes-csi/csi-lib-utils v0.19.0-beta.0 h1:v06gHJT03w4GqSIHqY70fusyRP52c7mNGjwDP/rXlls= -github.com/kubernetes-csi/csi-lib-utils v0.19.0-beta.0/go.mod h1:UeXs7eT5VF7FC1M8NiN/+c0D3QcSVSzqvRYudXVwtf8= +github.com/kubernetes-csi/csi-lib-utils v0.19.0 h1:3sT8mL9+St2acyrEtuR7CQ5L78GR4lgsb+sfon9tGfA= +github.com/kubernetes-csi/csi-lib-utils v0.19.0/go.mod h1:lBuMKvoyd8c3EG+itmnVWApLDHnLkU7ibxxZSPuOw0M= github.com/kubernetes-csi/csi-test/v5 v5.2.0 h1:Z+sdARWC6VrONrxB24clCLCmnqCnZF7dzXtzx8eM35o= github.com/kubernetes-csi/csi-test/v5 v5.2.0/go.mod h1:o/c5w+NU3RUNE+DbVRhEUTmkQVBGk+tFOB2yPXT8teo= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= @@ -193,16 +193,16 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.0-rc.0 h1:R+jdJGdcV5EQ9hpMR4BhrOmVrCk+fcU1b8tnwSS/DwE= -k8s.io/api v0.31.0-rc.0/go.mod h1:wb5Wz7B/Mz9Ri/aK+v7XFuePDh6OiZ0aCX6Yb9f/EAE= -k8s.io/apimachinery v0.31.0-rc.0 h1:8guKYtBUM/ZEvvQoWfm3hl/NEj+1eVhuSnSpDHheJmw= -k8s.io/apimachinery v0.31.0-rc.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.0-rc.0 h1:9ShcEasfMftGPmxfB8lo2QE63SWT+IEVMrFR7IuWkuI= -k8s.io/client-go v0.31.0-rc.0/go.mod h1:dsCs0l4s2KrHxbbXcHviMhkMBd81uhRPZExRpN6ykgI= -k8s.io/component-base v0.31.0-rc.0 h1:dPS5Pm17748Ur+h5u6G2679qBT3Vq9xDlq2TNsQL1Sk= -k8s.io/component-base v0.31.0-rc.0/go.mod h1:LYJyURUhpbHK6ldqnTIPJdj9C83AqkgLhAazWv2k7Ec= -k8s.io/csi-translation-lib v0.31.0-rc.0 h1:rYZ2cjtB1wyF4HrVBAJWROVR7Rwv75SLxw5VPLe5cIY= -k8s.io/csi-translation-lib v0.31.0-rc.0/go.mod h1:PClkjM5R9vAG+EMSx/uUN9O24eHQ81TeYqW9REzm8DE= +k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo= +k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE= +k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc= +k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8= +k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU= +k8s.io/component-base v0.31.0 h1:/KIzGM5EvPNQcYgwq5NwoQBaOlVFrghoVGr8lG6vNRs= +k8s.io/component-base v0.31.0/go.mod h1:TYVuzI1QmN4L5ItVdMSXKvH7/DtvIuas5/mm8YT3rTo= +k8s.io/csi-translation-lib v0.31.0 h1:5aCBPyFScdhfcWCUj0KDMAi/lDhxK99DF4XcfSnmH1A= +k8s.io/csi-translation-lib v0.31.0/go.mod h1:CM3U0vDm4jfuQpjKkqlJdRDqmAEcLQPm7aoJFjYf668= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= diff --git a/release-tools/.github/dependabot.yaml b/release-tools/.github/dependabot.yaml new file mode 100644 index 000000000..814a34493 --- /dev/null +++ b/release-tools/.github/dependabot.yaml @@ -0,0 +1,12 @@ +version: 2 +enable-beta-ecosystems: true +updates: +- package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + labels: + - "area/dependency" + - "release-note-none" + - "ok-to-test" + open-pull-requests-limit: 10 diff --git a/release-tools/.github/workflows/codespell.yml b/release-tools/.github/workflows/codespell.yml new file mode 100644 index 000000000..e74edcef5 --- /dev/null +++ b/release-tools/.github/workflows/codespell.yml @@ -0,0 +1,15 @@ +# GitHub Action to automate the identification of common misspellings in text files. +# https://github.com/codespell-project/actions-codespell +# https://github.com/codespell-project/codespell +name: codespell +on: [push, pull_request] +jobs: + codespell: + name: Check for spelling errors + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: codespell-project/actions-codespell@master + with: + check_filenames: true + skip: "*.png,*.jpg,*.svg,*.sum,./.git,./.github/workflows/codespell.yml,./prow.sh" diff --git a/release-tools/.github/workflows/trivy.yaml b/release-tools/.github/workflows/trivy.yaml new file mode 100644 index 000000000..472984780 --- /dev/null +++ b/release-tools/.github/workflows/trivy.yaml @@ -0,0 +1,29 @@ +name: Run Trivy scanner for Go version vulnerabilities +on: + push: + branches: + - master + pull_request: +jobs: + trivy: + name: Build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Get Go version + id: go-version + run: | + GO_VERSION=$(cat prow.sh | grep "configvar CSI_PROW_GO_VERSION_BUILD" | awk '{print $3}' | sed 's/"//g') + echo "version=$GO_VERSION" >> $GITHUB_OUTPUT + + - name: Run Trivy scanner for Go version vulnerabilities + uses: aquasecurity/trivy-action@master + with: + image-ref: 'golang:${{ steps.go-version.outputs.version }}' + format: 'table' + exit-code: '1' + ignore-unfixed: true + vuln-type: 'library' + severity: 'CRITICAL,HIGH,MEDIUM,LOW,UNKNOWN' diff --git a/release-tools/SIDECAR_RELEASE_PROCESS.md b/release-tools/SIDECAR_RELEASE_PROCESS.md index 647d2342b..aab8d6e21 100644 --- a/release-tools/SIDECAR_RELEASE_PROCESS.md +++ b/release-tools/SIDECAR_RELEASE_PROCESS.md @@ -84,7 +84,7 @@ naming convention `-on-`. 1. Compare the generated output to the new commits for the release to check if any notable change missed a release note. 1. Reword release notes as needed, ideally in the original PRs so that the - release notes can be regnerated. Make sure to check notes for breaking + release notes can be regenerated. Make sure to check notes for breaking changes and deprecations. 1. If release is a new major/minor version, create a new `CHANGELOG-..md` file. diff --git a/release-tools/generate-patch-release-notes.sh b/release-tools/generate-patch-release-notes.sh index 2b9c13c38..536a14902 100755 --- a/release-tools/generate-patch-release-notes.sh +++ b/release-tools/generate-patch-release-notes.sh @@ -23,13 +23,17 @@ # CSI_RELEASE_TOKEN: Github token needed for generating release notes # GITHUB_USER: Github username to create PRs with # +# Required tools: +# - gh +# - release-notes (https://github.com/kubernetes/release/blob/master/cmd/release-notes/README.md) +# # 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 versions in the $releases array -# 4. Set environment variables -# 5. Run script from the kubernetes-csi directory +# 1. Install the required tools +# 2. Login with "gh auth login" +# 3. Copy this script to the kubernetes-csi directory (one directory above the repos) +# 4. Update the repos and versions in the $releases array +# 5. Set environment variables +# 6. Run script from the kubernetes-csi directory # # Caveats: # - This script doesn't handle regenerating and updating existing PRs yet. diff --git a/release-tools/prow.sh b/release-tools/prow.sh index 049fb79af..df8c61502 100755 --- a/release-tools/prow.sh +++ b/release-tools/prow.sh @@ -86,7 +86,7 @@ configvar CSI_PROW_BUILD_PLATFORMS "linux amd64 amd64; linux ppc64le ppc64le -pp # which is disabled with GOFLAGS=-mod=vendor). configvar GOFLAGS_VENDOR "$( [ -d vendor ] && echo '-mod=vendor' )" "Go flags for using the vendor directory" -configvar CSI_PROW_GO_VERSION_BUILD "1.22.3" "Go version for building the component" # depends on component's source code +configvar CSI_PROW_GO_VERSION_BUILD "1.22.5" "Go version for building the component" # depends on component's source code configvar CSI_PROW_GO_VERSION_E2E "" "override Go version for building the Kubernetes E2E test suite" # normally doesn't need to be set, see install_e2e configvar CSI_PROW_GO_VERSION_SANITY "${CSI_PROW_GO_VERSION_BUILD}" "Go version for building the csi-sanity test suite" # depends on CSI_PROW_SANITY settings below configvar CSI_PROW_GO_VERSION_KIND "${CSI_PROW_GO_VERSION_BUILD}" "Go version for building 'kind'" # depends on CSI_PROW_KIND_VERSION below @@ -231,8 +231,11 @@ configvar CSI_PROW_E2E_VERSION "$(version_to_git "${CSI_PROW_KUBERNETES_VERSION} configvar CSI_PROW_E2E_REPO "https://github.com/kubernetes/kubernetes" "E2E repo" configvar CSI_PROW_E2E_IMPORT_PATH "k8s.io/kubernetes" "E2E package" -# Local path for e2e tests. Set to "none" to disable. -configvar CSI_PROW_SIDECAR_E2E_IMPORT_PATH "none" "CSI Sidecar E2E package" +# Local path & package path for e2e tests. Set to "none" to disable. +# When using versioned go modules, the import path is the module path whereas the path +# should not contain the version and be the directory where the module is checked out. +configvar CSI_PROW_SIDECAR_E2E_IMPORT_PATH "none" "CSI Sidecar E2E package (go import path)" +configvar CSI_PROW_SIDECAR_E2E_PATH "${CSI_PROW_SIDECAR_E2E_IMPORT_PATH}" "CSI Sidecar E2E path (directory)" # csi-sanity testing from the csi-test repo can be run against the installed # CSI driver. For this to work, deploying the driver must expose the Unix domain @@ -1035,7 +1038,7 @@ run_e2e () ( trap move_junit EXIT if [ "${name}" == "local" ]; then - cd "${GOPATH}/src/${CSI_PROW_SIDECAR_E2E_IMPORT_PATH}" && + cd "${GOPATH}/src/${CSI_PROW_SIDECAR_E2E_PATH}" && run_with_loggers env KUBECONFIG="$KUBECONFIG" KUBE_TEST_REPO_LIST="$(if [ -e "${CSI_PROW_WORK}/e2e-repo-list" ]; then echo "${CSI_PROW_WORK}/e2e-repo-list"; fi)" ginkgo --timeout="${CSI_PROW_GINKGO_TIMEOUT}" -v "$@" "${CSI_PROW_WORK}/e2e-local.test" -- -report-dir "${ARTIFACTS}" -report-prefix local else cd "${GOPATH}/src/${CSI_PROW_E2E_IMPORT_PATH}" && diff --git a/vendor/modules.txt b/vendor/modules.txt index ffe2cad46..3bde69e06 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -98,8 +98,8 @@ github.com/josharian/intern # github.com/json-iterator/go v1.1.12 ## explicit; go 1.12 github.com/json-iterator/go -# github.com/kubernetes-csi/csi-lib-utils v0.19.0-beta.0 -## explicit; go 1.22.0 +# github.com/kubernetes-csi/csi-lib-utils v0.19.0 +## explicit; go 1.22.5 github.com/kubernetes-csi/csi-lib-utils/accessmodes github.com/kubernetes-csi/csi-lib-utils/connection github.com/kubernetes-csi/csi-lib-utils/leaderelection @@ -334,7 +334,7 @@ gopkg.in/yaml.v2 # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 -# k8s.io/api v0.31.0-rc.0 => k8s.io/api v0.31.0-rc.0 +# k8s.io/api v0.31.0 => k8s.io/api v0.31.0 ## explicit; go 1.22.0 k8s.io/api/admissionregistration/v1 k8s.io/api/admissionregistration/v1alpha1 @@ -392,7 +392,7 @@ k8s.io/api/storage/v1 k8s.io/api/storage/v1alpha1 k8s.io/api/storage/v1beta1 k8s.io/api/storagemigration/v1alpha1 -# k8s.io/apimachinery v0.31.0-rc.0 => k8s.io/apimachinery v0.31.0-rc.0 +# k8s.io/apimachinery v0.31.0 => k8s.io/apimachinery v0.31.0 ## explicit; go 1.22.0 k8s.io/apimachinery/pkg/api/equality k8s.io/apimachinery/pkg/api/errors @@ -446,7 +446,7 @@ k8s.io/apimachinery/pkg/version k8s.io/apimachinery/pkg/watch k8s.io/apimachinery/third_party/forked/golang/json k8s.io/apimachinery/third_party/forked/golang/reflect -# k8s.io/client-go v0.31.0-rc.0 => k8s.io/client-go v0.31.0-rc.0 +# k8s.io/client-go v0.31.0 => k8s.io/client-go v0.31.0 ## explicit; go 1.22.0 k8s.io/client-go/applyconfigurations k8s.io/client-go/applyconfigurations/admissionregistration/v1 @@ -767,7 +767,7 @@ k8s.io/client-go/util/homedir k8s.io/client-go/util/keyutil k8s.io/client-go/util/watchlist k8s.io/client-go/util/workqueue -# k8s.io/component-base v0.31.0-rc.0 => k8s.io/component-base v0.31.0-rc.0 +# k8s.io/component-base v0.31.0 => k8s.io/component-base v0.31.0 ## explicit; go 1.22.0 k8s.io/component-base/cli/flag k8s.io/component-base/featuregate @@ -782,7 +782,7 @@ k8s.io/component-base/metrics/legacyregistry k8s.io/component-base/metrics/prometheus/feature k8s.io/component-base/metrics/prometheusextension k8s.io/component-base/version -# k8s.io/csi-translation-lib v0.31.0-rc.0 => k8s.io/csi-translation-lib v0.31.0-rc.0 +# k8s.io/csi-translation-lib v0.31.0 => k8s.io/csi-translation-lib v0.31.0 ## explicit; go 1.22.0 k8s.io/csi-translation-lib k8s.io/csi-translation-lib/plugins @@ -836,8 +836,8 @@ sigs.k8s.io/structured-merge-diff/v4/value ## explicit; go 1.12 sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 -# k8s.io/api => k8s.io/api v0.31.0-rc.0 -# k8s.io/apimachinery => k8s.io/apimachinery v0.31.0-rc.0 -# k8s.io/client-go => k8s.io/client-go v0.31.0-rc.0 -# k8s.io/component-base => k8s.io/component-base v0.31.0-rc.0 -# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.31.0-rc.0 +# k8s.io/api => k8s.io/api v0.31.0 +# k8s.io/apimachinery => k8s.io/apimachinery v0.31.0 +# k8s.io/client-go => k8s.io/client-go v0.31.0 +# k8s.io/component-base => k8s.io/component-base v0.31.0 +# k8s.io/csi-translation-lib => k8s.io/csi-translation-lib v0.31.0