diff --git a/CHANGELOG/CHANGELOG-0.6.md b/CHANGELOG/CHANGELOG-0.6.md deleted file mode 100644 index e421d8512..000000000 --- a/CHANGELOG/CHANGELOG-0.6.md +++ /dev/null @@ -1,42 +0,0 @@ -# v0.6.0 - Changelog Since v0.5.0 - -## Breaking Changes - -- Some of the API objects in the deployment specs have changed names/labels/namespaces, please tear down old driver before deploying this version to avoid orphaning old objects. You will also no longer see the driver in the `default` namespace. -- Some error codes have been changed, please see below for details if you rely on specific error codes of the driver - -## New Features - -- Add support for Raw Block devices. ([#283](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/283), [@davidz627](https://github.com/davidz627)) -- Operations in the node driver are now parallelized, except those involving a volume already being operated on now return an error. ([#303](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/303), [@hantaowang](https://github.com/hantaowang)) -- Adds support for ControllerExpandVolume and NodeExpandVolume ([#317](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/317), [@davidz627](https://github.com/davidz627)) -- Operations in the controller driver on a volume already being operated on now return an error. ([#316](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/316), [@hantaowang](https://github.com/hantaowang)) -- Picking up support for inline volume migration and some fixes for backward compatible access modes for migration ([#324](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/324), [@davidz627](https://github.com/davidz627)) - - -## Bug Fixes - -- Reduces node attach limits by 1 since the node boot disk is considered an attachable disk ([#361](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/361), [@davidz627](https://github.com/davidz627)) -- Fixed a bug that causes disks in the same zone/region to be provisioned serially ([#344](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/344), [@hantaowang](https://github.com/hantaowang)) -- Remove cross validation of access modes, multiple access modes can be specified that represent all the capabilities of the volume ([#289](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/289), [@davidz627](https://github.com/davidz627)) -- Driver should check socket parent directory before trying to bind it ([#339](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/339), [@zhucan](https://github.com/zhucan)) -- Updated CSI Attacher to stop ignoring errors from ControllerUnpublish ([#378](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/378), [@davidz627](https://github.com/davidz627)) -- CreateVolume will now fail with NOT_FOUND error when VolumeContentSource SnapshotId does not refer to a snapshot that can be found ([#312](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/312), [@davidz627](https://github.com/davidz627)) -- ControllerUnpublishVolume now returns success when the Node is GCE API NotFound. -Invalid format VolumeID is now GRPC InvalidArgument error instead of GRPC NotFound. -Underspecified disks not found in any zone now return GRPC NotFound. ([#368](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/368), [@davidz627](https://github.com/davidz627)) - - -## Other Notable Changes - -- Deployment spec updates: -The deployment is no longer in namespace `default` -Changed "app" label key to "k8s-app" -csi-snapshotter version has been changed to v1.2.0-gke.0 -The resizer role binding has been renamed to "csi-controller-resizer-binding" -Removed driver-registrar role. ([#364](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/364), [@verult](https://github.com/verult)) -- Updating the following image versions in stable deployment specs: -gcp-compute-persistent-disk-csi-driver: v0.6.0-gke.0 -csi-provisioner: v1.4.0-gke.0 -csi-attacher: v2.0.0-gke.0 -csi-node-driver-registrar: v1.2.0-gke.0 ([#400](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/400), [@verult](https://github.com/verult)) \ No newline at end of file diff --git a/CHANGELOG/CHANGELOG-0.7.md b/CHANGELOG/CHANGELOG-0.7.md deleted file mode 100644 index 2adf2695d..000000000 --- a/CHANGELOG/CHANGELOG-0.7.md +++ /dev/null @@ -1,33 +0,0 @@ -# v0.7.0 - Changelog Since v0.6.0 - -## Changes with Action Required - -- Adding `PodSecurityPoliciy` to allow `csi-gce-pd-node` in clusters with policies enabled. -IF LOCAL PSP MANIFEST PATCH IS USED PLEASE BEWARE THAT YOU WILL NEED TO DELETE LOCAL CHANGES AND USE THE UPSTREAM ([#448](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/448), [@ffilippopoulos](https://github.com/ffilippopoulos)) -- BREAKING CHANGE: All deployment objects in setup-cluster.yaml have been renamed. When deleting the deployment using ./delete-driver.sh, make sure to use specs from your previous deployment version to ensure the correct objects are cleaned up. ([#405](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/405), [@verult](https://github.com/verult)) - -## New Features - -- Add GET_VOLUME_STATS Node Service Capability and implementation for getting stats for volume ([#406](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/406), [@davidz627](https://github.com/davidz627)) -- ValidateVolumeCapabilities validates that the given volume conforms to all capabilities in the request. Validation of existing volumes during inserts also improved to check all parameters. ([#467](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/467), [@davidz627](https://github.com/davidz627)) -- It is now possible to disable the controller service by setting `--run-controller-service=false`. Similarly, it is possible to disable the node service by setting `--run-node-service=false`. The latter enables running the controller server of the GCE PD driver separately/outside of the cluster it is serving. Also, if both `project-id` and `zone` are specified in the GCE cloud config then the controller server does no longer try to contact the GCE metadata service. ([#449](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/449), [@rfranzke](https://github.com/rfranzke)) -- Add support for formatting and mounting an XFS filesystem ([#447](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/447), [@davidz627](https://github.com/davidz627)) -- Add a blanket toleration to the Node Daemonset of the driver deployment so that it can be deployed on all nodes ([#417](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/417), [@davidz627](https://github.com/davidz627)) -- Adds LIST_VOLUMES and LIST_VOLUMES_PUBLISHED_NODES capabilities with respective functionality ([#392](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/392), [@davidz627](https://github.com/davidz627)) - - -## Bug Fixes - -- Fixed bug where ControllerExpandVolume was returning incorrect size when disk was already the requested size or larger ([#462](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/462), [@davidz627](https://github.com/davidz627)) -- Set volume limits to 15 only for machine-types: "f1-micro", "g1-small", "e2-micro", "e2-small", "e2-medium". Limit is 127 for all others ([#455](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/455), [@davidz627](https://github.com/davidz627)) -- Changed deployment of Controller and Node components to use hostNetwork for compatibility with GKE Workload Identity ([#436](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/436), [@davidz627](https://github.com/davidz627)) -- During NodeStageVolume run udevadm --trigger to fix device symlinks if device path is not found or device path points to the wrong device ([#459](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/459), [@davidz627](https://github.com/davidz627)) -- Bump external-snapshotter version to v1.2.2 for fix of CVE-2019-11255 ([#434](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/434), [@davidz627](https://github.com/davidz627)) - - -## Other Notable Changes - -- Update driver base image distro to debian-amd64:v2.0.0 and build with go v1.13.4 ([#439](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/439), [@davidz627](https://github.com/davidz627)) -- Mounting an unformatted volume with an fstype as read-only now throws a more descriptive error ([#458](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/458), [@davidz627](https://github.com/davidz627)) -- Remove explicit stripping of secrets from RPC request/response logs since the driver doesn't accept secrets for operations ([#428](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/428), [@davidz627](https://github.com/davidz627)) -- Improve driver logs to log success in all paths as well as logging additional useful information ([#409](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/409), [@davidz627](https://github.com/davidz627)) \ No newline at end of file diff --git a/CHANGELOG/CHANGELOG-1.0.md b/CHANGELOG/CHANGELOG-1.0.md deleted file mode 100644 index ad4c87639..000000000 --- a/CHANGELOG/CHANGELOG-1.0.md +++ /dev/null @@ -1,359 +0,0 @@ -# v1.0.4 - Changelog since v1.0.2 - -### Other - -- Fix build for various go versions, ([#832](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/832), [@mattcary](https://github.com/mattcary)) - -# v1.0.3 - **Bad tag, skipped** - -# v1.0.2 - Changelog since v1.0.1 - -### Bug or Regression - -- Update base image to buster-v.1.9.0 ([#829](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/829), [@mattcary](https://github.com/mattcary)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.0.1 - Changelog since v1.0.0 - -## Changes by Kind - -### Other (Cleanup or Flake) - -- Update GCE PD CSI Driver Docker base image to `k8s.gcr.io/build-image/debian-base-amd64:v2.1.3` (previously `gcr.io/google-containers/debian-base-amd64:v2.0.0`) to address CVEs. ([#598](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/598), [@saad-ali](https://github.com/saad-ali)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.0.0 - Changelog since v0.7.0 - -## Changes by Kind - -### Feature - -- Add support for multi-writer raw block devices. ([#415](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/415), [@sschmitt](https://github.com/sschmitt)) -- Enable CSI Snapshotter (2.x) side car for PD CSI driver ([#500](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/500), [@saikat-royc](https://github.com/saikat-royc)) -- Enable CSI snapshotter side car (beta) for PD CSI driver. ([#507](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/507), [@saikat-royc](https://github.com/saikat-royc)) -- Increase sidecar operation timeout for stable overlay ([#577](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/577), [@saikat-royc](https://github.com/saikat-royc)) -- Provisioned GCE PD Description will contain JSON with information about what PVC/PV disk was created for (similar to volumes provisioned by in-tree GCE PD plugin). This feature requires the `--extra-create-metadata` flag to be set on the CSI external-provisioner. ([#570](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/570), [@saad-ali](https://github.com/saad-ali)) -- The driver deployment now has leader election enabled, and the controller deployment uses a Deployment instead of a StatefulSet. ([#521](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/521), [@verult](https://github.com/verult)) -- Updating the following image versions in stable deployment specs: - - csi-provisioner: v1.6.0-gke.0 - - csi-attacher: v2.2.0-gke.0 - - csi-node-driver-registrar: v1.3.0-gke.0 - - csi-resizer: v0.5.0-gke.0 ([#517](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/517), [@verult](https://github.com/verult)) -- Add Windows support in GCE PD driver with the use of csi-proxy (https://github.com/kubernetes-csi/csi-proxy/). ([#483](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/483), [@jingxu97](https://github.com/jingxu97)) -- Adds new build rules using docker buildx feature for allowing to build windows container image on either windows or linux node. ([#489](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/489), [@jingxu97](https://github.com/jingxu97)) -- Install CSIDriver object as part of driver deployment. ([#575](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/575), [@Jiawei0227](https://github.com/Jiawei0227)) - -### Bug or Regression - -- Increase provisioner and attacher op timeout to reduce retries ([#542](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/542), [@saikat-royc](https://github.com/saikat-royc)) -- Fixed issue where provisioning of GCE PDs with CMEK used to sometimes fails with `disk already exists with same name` error. ([#563](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/563), [@saad-ali](https://github.com/saad-ali)) -- Honor image-type in GKE cluster deploy ([#536](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/536), [@saikat-royc](https://github.com/saikat-royc)) -- In GCE PersistentDisk CSI Driver CreateVolume call, wait for disk to reach a READY status, before returning success to caller. ([#527](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/527), [@saikat-royc](https://github.com/saikat-royc)) -- Skip NodeExpandVolume for block volumes. ([#571](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/571), [@saad-ali](https://github.com/saad-ali)) - -### Failing Test - -- Add autorepair options for GKE release channel ([#538](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/538), [@saikat-royc](https://github.com/saikat-royc)) -- Disable the optional capability to handle volume in user errors for staging-head PD driver. ([#540](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/540), [@saikat-royc](https://github.com/saikat-royc)) -- Add hook to deploy GKE with GCE PD CSI driver, and run kubernetes e2e tests against the managed driver ([#515](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/515), [@saikat-royc](https://github.com/saikat-royc)) -- Enable PD CSI snapshot tests for release-staging-head and release-staging-rc ([#505](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/505), [@saikat-royc](https://github.com/saikat-royc)) - -### Documentation - -- Update documentation and user guides for beta snapshotter ([#508](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/508), [@saikat-royc](https://github.com/saikat-royc)) - - -## Dependencies - -### Added -- bitbucket.org/bertimus9/systemstat: 0eeff89 -- github.com/Azure/go-autorest/autorest/adal: [v0.5.0](https://github.com/Azure/go-autorest/autorest/adal/tree/v0.5.0) -- github.com/Azure/go-autorest/autorest/date: [v0.1.0](https://github.com/Azure/go-autorest/autorest/date/tree/v0.1.0) -- github.com/Azure/go-autorest/autorest/mocks: [v0.2.0](https://github.com/Azure/go-autorest/autorest/mocks/tree/v0.2.0) -- github.com/Azure/go-autorest/autorest/to: [v0.2.0](https://github.com/Azure/go-autorest/autorest/to/tree/v0.2.0) -- github.com/Azure/go-autorest/autorest/validation: [v0.1.0](https://github.com/Azure/go-autorest/autorest/validation/tree/v0.1.0) -- github.com/Azure/go-autorest/autorest: [v0.9.0](https://github.com/Azure/go-autorest/autorest/tree/v0.9.0) -- github.com/Azure/go-autorest/logger: [v0.1.0](https://github.com/Azure/go-autorest/logger/tree/v0.1.0) -- github.com/Azure/go-autorest/tracing: [v0.5.0](https://github.com/Azure/go-autorest/tracing/tree/v0.5.0) -- github.com/JeffAshton/win_pdh: [76bb4ee](https://github.com/JeffAshton/win_pdh/tree/76bb4ee) -- github.com/MakeNowJust/heredoc: [bb23615](https://github.com/MakeNowJust/heredoc/tree/bb23615) -- github.com/Microsoft/hcsshim: [672e52e](https://github.com/Microsoft/hcsshim/tree/672e52e) -- github.com/OpenPeeDeeP/depguard: [v1.0.1](https://github.com/OpenPeeDeeP/depguard/tree/v1.0.1) -- github.com/Rican7/retry: [v0.1.0](https://github.com/Rican7/retry/tree/v0.1.0) -- github.com/StackExchange/wmi: [5d04971](https://github.com/StackExchange/wmi/tree/5d04971) -- github.com/agnivade/levenshtein: [v1.0.1](https://github.com/agnivade/levenshtein/tree/v1.0.1) -- github.com/ajstarks/svgo: [644b8db](https://github.com/ajstarks/svgo/tree/644b8db) -- github.com/andreyvit/diff: [c7f18ee](https://github.com/andreyvit/diff/tree/c7f18ee) -- github.com/anmitsu/go-shlex: [648efa6](https://github.com/anmitsu/go-shlex/tree/648efa6) -- github.com/armon/circbuf: [bbbad09](https://github.com/armon/circbuf/tree/bbbad09) -- github.com/auth0/go-jwt-middleware: [5493cab](https://github.com/auth0/go-jwt-middleware/tree/5493cab) -- github.com/bazelbuild/bazel-gazelle: [70208cb](https://github.com/bazelbuild/bazel-gazelle/tree/70208cb) -- github.com/bazelbuild/rules_go: [6dae44d](https://github.com/bazelbuild/rules_go/tree/6dae44d) -- github.com/bifurcation/mint: [93c51c6](https://github.com/bifurcation/mint/tree/93c51c6) -- github.com/boltdb/bolt: [v1.3.1](https://github.com/boltdb/bolt/tree/v1.3.1) -- github.com/bradfitz/go-smtpd: [deb6d62](https://github.com/bradfitz/go-smtpd/tree/deb6d62) -- github.com/caddyserver/caddy: [v1.0.3](https://github.com/caddyserver/caddy/tree/v1.0.3) -- github.com/cenkalti/backoff: [v2.1.1+incompatible](https://github.com/cenkalti/backoff/tree/v2.1.1) -- github.com/cespare/prettybench: [03b8cfe](https://github.com/cespare/prettybench/tree/03b8cfe) -- github.com/chai2010/gettext-go: [c6fed77](https://github.com/chai2010/gettext-go/tree/c6fed77) -- github.com/checkpoint-restore/go-criu: [17b0214](https://github.com/checkpoint-restore/go-criu/tree/17b0214) -- github.com/cheekybits/genny: [9127e81](https://github.com/cheekybits/genny/tree/9127e81) -- github.com/cilium/ebpf: [95b36a5](https://github.com/cilium/ebpf/tree/95b36a5) -- github.com/clusterhq/flocker-go: [2b8b725](https://github.com/clusterhq/flocker-go/tree/2b8b725) -- github.com/cockroachdb/datadriven: [80d97fb](https://github.com/cockroachdb/datadriven/tree/80d97fb) -- github.com/codegangsta/negroni: [v1.0.0](https://github.com/codegangsta/negroni/tree/v1.0.0) -- github.com/containerd/console: [84eeaae](https://github.com/containerd/console/tree/84eeaae) -- github.com/containerd/containerd: [v1.0.2](https://github.com/containerd/containerd/tree/v1.0.2) -- github.com/containerd/typeurl: [2a93cfd](https://github.com/containerd/typeurl/tree/2a93cfd) -- github.com/containernetworking/cni: [v0.7.1](https://github.com/containernetworking/cni/tree/v0.7.1) -- github.com/coredns/corefile-migration: [v1.0.6](https://github.com/coredns/corefile-migration/tree/v1.0.6) -- github.com/creack/pty: [v1.1.7](https://github.com/creack/pty/tree/v1.1.7) -- github.com/cyphar/filepath-securejoin: [v0.2.2](https://github.com/cyphar/filepath-securejoin/tree/v0.2.2) -- github.com/daviddengcn/go-colortext: [511bcaf](https://github.com/daviddengcn/go-colortext/tree/511bcaf) -- github.com/dnaeon/go-vcr: [v1.0.1](https://github.com/dnaeon/go-vcr/tree/v1.0.1) -- github.com/docker/libnetwork: [c8a5fca](https://github.com/docker/libnetwork/tree/c8a5fca) -- github.com/euank/go-kmsg-parser: [v2.0.0+incompatible](https://github.com/euank/go-kmsg-parser/tree/v2.0.0) -- github.com/exponent-io/jsonpath: [d6023ce](https://github.com/exponent-io/jsonpath/tree/d6023ce) -- github.com/fatih/camelcase: [v1.0.0](https://github.com/fatih/camelcase/tree/v1.0.0) -- github.com/flynn/go-shlex: [3f9db97](https://github.com/flynn/go-shlex/tree/3f9db97) -- github.com/fogleman/gg: [0403632](https://github.com/fogleman/gg/tree/0403632) -- github.com/gliderlabs/ssh: [v0.1.1](https://github.com/gliderlabs/ssh/tree/v0.1.1) -- github.com/go-acme/lego: [v2.5.0+incompatible](https://github.com/go-acme/lego/tree/v2.5.0) -- github.com/go-bindata/go-bindata: [v3.1.1+incompatible](https://github.com/go-bindata/go-bindata/tree/v3.1.1) -- github.com/go-critic/go-critic: [1df3008](https://github.com/go-critic/go-critic/tree/1df3008) -- github.com/go-lintpack/lintpack: [v0.5.2](https://github.com/go-lintpack/lintpack/tree/v0.5.2) -- github.com/go-ole/go-ole: [v1.2.1](https://github.com/go-ole/go-ole/tree/v1.2.1) -- github.com/go-ozzo/ozzo-validation: [v3.5.0+incompatible](https://github.com/go-ozzo/ozzo-validation/tree/v3.5.0) -- github.com/go-toolsmith/astcast: [v1.0.0](https://github.com/go-toolsmith/astcast/tree/v1.0.0) -- github.com/go-toolsmith/astcopy: [v1.0.0](https://github.com/go-toolsmith/astcopy/tree/v1.0.0) -- github.com/go-toolsmith/astequal: [v1.0.0](https://github.com/go-toolsmith/astequal/tree/v1.0.0) -- github.com/go-toolsmith/astfmt: [v1.0.0](https://github.com/go-toolsmith/astfmt/tree/v1.0.0) -- github.com/go-toolsmith/astinfo: [9809ff7](https://github.com/go-toolsmith/astinfo/tree/9809ff7) -- github.com/go-toolsmith/astp: [v1.0.0](https://github.com/go-toolsmith/astp/tree/v1.0.0) -- github.com/go-toolsmith/pkgload: [v1.0.0](https://github.com/go-toolsmith/pkgload/tree/v1.0.0) -- github.com/go-toolsmith/strparse: [v1.0.0](https://github.com/go-toolsmith/strparse/tree/v1.0.0) -- github.com/go-toolsmith/typep: [v1.0.0](https://github.com/go-toolsmith/typep/tree/v1.0.0) -- github.com/gobwas/glob: [v0.2.3](https://github.com/gobwas/glob/tree/v0.2.3) -- github.com/godbus/dbus: [2ff6f7f](https://github.com/godbus/dbus/tree/2ff6f7f) -- github.com/golang/freetype: [e2365df](https://github.com/golang/freetype/tree/e2365df) -- github.com/golangci/check: [cfe4005](https://github.com/golangci/check/tree/cfe4005) -- github.com/golangci/dupl: [3e9179a](https://github.com/golangci/dupl/tree/3e9179a) -- github.com/golangci/errcheck: [ef45e06](https://github.com/golangci/errcheck/tree/ef45e06) -- github.com/golangci/go-misc: [927a3d8](https://github.com/golangci/go-misc/tree/927a3d8) -- github.com/golangci/go-tools: [e32c541](https://github.com/golangci/go-tools/tree/e32c541) -- github.com/golangci/goconst: [041c5f2](https://github.com/golangci/goconst/tree/041c5f2) -- github.com/golangci/gocyclo: [2becd97](https://github.com/golangci/gocyclo/tree/2becd97) -- github.com/golangci/gofmt: [0b8337e](https://github.com/golangci/gofmt/tree/0b8337e) -- github.com/golangci/golangci-lint: [v1.18.0](https://github.com/golangci/golangci-lint/tree/v1.18.0) -- github.com/golangci/gosec: [66fb7fc](https://github.com/golangci/gosec/tree/66fb7fc) -- github.com/golangci/ineffassign: [42439a7](https://github.com/golangci/ineffassign/tree/42439a7) -- github.com/golangci/lint-1: [ee948d0](https://github.com/golangci/lint-1/tree/ee948d0) -- github.com/golangci/maligned: [b1d8939](https://github.com/golangci/maligned/tree/b1d8939) -- github.com/golangci/misspell: [950f5d1](https://github.com/golangci/misspell/tree/950f5d1) -- github.com/golangci/prealloc: [215b22d](https://github.com/golangci/prealloc/tree/215b22d) -- github.com/golangci/revgrep: [d9c87f5](https://github.com/golangci/revgrep/tree/d9c87f5) -- github.com/golangci/unconvert: [28b1c44](https://github.com/golangci/unconvert/tree/28b1c44) -- github.com/golangplus/bytes: [45c989f](https://github.com/golangplus/bytes/tree/45c989f) -- github.com/golangplus/fmt: [2a5d6d7](https://github.com/golangplus/fmt/tree/2a5d6d7) -- github.com/golangplus/testing: [af21d9c](https://github.com/golangplus/testing/tree/af21d9c) -- github.com/google/cadvisor: [v0.35.0](https://github.com/google/cadvisor/tree/v0.35.0) -- github.com/google/renameio: [v0.1.0](https://github.com/google/renameio/tree/v0.1.0) -- github.com/gopherjs/gopherjs: [0766667](https://github.com/gopherjs/gopherjs/tree/0766667) -- github.com/gostaticanalysis/analysisutil: [v0.0.3](https://github.com/gostaticanalysis/analysisutil/tree/v0.0.3) -- github.com/hashicorp/go-syslog: [v1.0.0](https://github.com/hashicorp/go-syslog/tree/v1.0.0) -- github.com/heketi/heketi: [c2e2a4a](https://github.com/heketi/heketi/tree/c2e2a4a) -- github.com/heketi/tests: [f3775cb](https://github.com/heketi/tests/tree/f3775cb) -- github.com/jellevandenhooff/dkim: [f50fe3d](https://github.com/jellevandenhooff/dkim/tree/f50fe3d) -- github.com/jimstudt/http-authentication: [3eca13d](https://github.com/jimstudt/http-authentication/tree/3eca13d) -- github.com/jtolds/gls: [v4.20.0+incompatible](https://github.com/jtolds/gls/tree/v4.20.0) -- github.com/jung-kurt/gofpdf: [24315ac](https://github.com/jung-kurt/gofpdf/tree/24315ac) -- github.com/karrick/godirwalk: [v1.7.5](https://github.com/karrick/godirwalk/tree/v1.7.5) -- github.com/kubernetes-csi/csi-proxy/client: [9eff164](https://github.com/kubernetes-csi/csi-proxy/client/tree/9eff164) -- github.com/kylelemons/godebug: [d65d576](https://github.com/kylelemons/godebug/tree/d65d576) -- github.com/libopenstorage/openstorage: [v1.0.0](https://github.com/libopenstorage/openstorage/tree/v1.0.0) -- github.com/liggitt/tabwriter: [89fcab3](https://github.com/liggitt/tabwriter/tree/89fcab3) -- github.com/lithammer/dedent: [v1.1.0](https://github.com/lithammer/dedent/tree/v1.1.0) -- github.com/logrusorgru/aurora: [a7b3b31](https://github.com/logrusorgru/aurora/tree/a7b3b31) -- github.com/lpabon/godbc: [v0.1.1](https://github.com/lpabon/godbc/tree/v0.1.1) -- github.com/lucas-clemente/aes12: [cd47fb3](https://github.com/lucas-clemente/aes12/tree/cd47fb3) -- github.com/lucas-clemente/quic-clients: [v0.1.0](https://github.com/lucas-clemente/quic-clients/tree/v0.1.0) -- github.com/lucas-clemente/quic-go-certificates: [d2f8652](https://github.com/lucas-clemente/quic-go-certificates/tree/d2f8652) -- github.com/lucas-clemente/quic-go: [v0.10.2](https://github.com/lucas-clemente/quic-go/tree/v0.10.2) -- github.com/marten-seemann/qtls: [v0.2.3](https://github.com/marten-seemann/qtls/tree/v0.2.3) -- github.com/mattn/go-shellwords: [v1.0.5](https://github.com/mattn/go-shellwords/tree/v1.0.5) -- github.com/mattn/goveralls: [v0.0.2](https://github.com/mattn/goveralls/tree/v0.0.2) -- github.com/mesos/mesos-go: [v0.0.9](https://github.com/mesos/mesos-go/tree/v0.0.9) -- github.com/mholt/certmagic: [6a42ef9](https://github.com/mholt/certmagic/tree/6a42ef9) -- github.com/miekg/dns: [v1.1.4](https://github.com/miekg/dns/tree/v1.1.4) -- github.com/mindprince/gonvml: [9ebdce4](https://github.com/mindprince/gonvml/tree/9ebdce4) -- github.com/mistifyio/go-zfs: [v2.1.1+incompatible](https://github.com/mistifyio/go-zfs/tree/v2.1.1) -- github.com/mitchellh/go-ps: [4fdf99a](https://github.com/mitchellh/go-ps/tree/4fdf99a) -- github.com/mitchellh/go-wordwrap: [v1.0.0](https://github.com/mitchellh/go-wordwrap/tree/v1.0.0) -- github.com/mohae/deepcopy: [491d360](https://github.com/mohae/deepcopy/tree/491d360) -- github.com/morikuni/aec: [v1.0.0](https://github.com/morikuni/aec/tree/v1.0.0) -- github.com/mozilla/tls-observatory: [8791a20](https://github.com/mozilla/tls-observatory/tree/8791a20) -- github.com/mrunalp/fileutils: [7d4729f](https://github.com/mrunalp/fileutils/tree/7d4729f) -- github.com/mvdan/xurls: [v1.1.0](https://github.com/mvdan/xurls/tree/v1.1.0) -- github.com/naoina/go-stringutil: [v0.1.0](https://github.com/naoina/go-stringutil/tree/v0.1.0) -- github.com/naoina/toml: [v0.1.1](https://github.com/naoina/toml/tree/v0.1.1) -- github.com/nbutton23/zxcvbn-go: [eafdab6](https://github.com/nbutton23/zxcvbn-go/tree/eafdab6) -- github.com/opencontainers/runc: [v1.0.0-rc10](https://github.com/opencontainers/runc/tree/v1.0.0-rc10) -- github.com/opencontainers/runtime-spec: [v1.0.0](https://github.com/opencontainers/runtime-spec/tree/v1.0.0) -- github.com/opencontainers/selinux: [5215b18](https://github.com/opencontainers/selinux/tree/5215b18) -- github.com/pquerna/ffjson: [af8b230](https://github.com/pquerna/ffjson/tree/af8b230) -- github.com/quasilyte/go-consistent: [c6f3937](https://github.com/quasilyte/go-consistent/tree/c6f3937) -- github.com/quobyte/api: [v0.1.2](https://github.com/quobyte/api/tree/v0.1.2) -- github.com/robfig/cron: [v1.1.0](https://github.com/robfig/cron/tree/v1.1.0) -- github.com/rogpeppe/fastuuid: [6724a57](https://github.com/rogpeppe/fastuuid/tree/6724a57) -- github.com/rogpeppe/go-internal: [v1.3.0](https://github.com/rogpeppe/go-internal/tree/v1.3.0) -- github.com/rubiojr/go-vhd: [0bfd3b3](https://github.com/rubiojr/go-vhd/tree/0bfd3b3) -- github.com/ryanuber/go-glob: [256dc44](https://github.com/ryanuber/go-glob/tree/256dc44) -- github.com/seccomp/libseccomp-golang: [v0.9.1](https://github.com/seccomp/libseccomp-golang/tree/v0.9.1) -- github.com/sergi/go-diff: [v1.0.0](https://github.com/sergi/go-diff/tree/v1.0.0) -- github.com/shirou/gopsutil: [c95755e](https://github.com/shirou/gopsutil/tree/c95755e) -- github.com/shirou/w32: [bb4de01](https://github.com/shirou/w32/tree/bb4de01) -- github.com/shurcooL/go-goon: [37c2f52](https://github.com/shurcooL/go-goon/tree/37c2f52) -- github.com/smartystreets/assertions: [b2de0cb](https://github.com/smartystreets/assertions/tree/b2de0cb) -- github.com/smartystreets/goconvey: [v1.6.4](https://github.com/smartystreets/goconvey/tree/v1.6.4) -- github.com/sourcegraph/go-diff: [v0.5.1](https://github.com/sourcegraph/go-diff/tree/v0.5.1) -- github.com/storageos/go-api: [343b3ef](https://github.com/storageos/go-api/tree/343b3ef) -- github.com/syndtr/gocapability: [d983527](https://github.com/syndtr/gocapability/tree/d983527) -- github.com/tarm/serial: [98f6abe](https://github.com/tarm/serial/tree/98f6abe) -- github.com/thecodeteam/goscaleio: [v0.1.0](https://github.com/thecodeteam/goscaleio/tree/v0.1.0) -- github.com/tidwall/pretty: [v1.0.0](https://github.com/tidwall/pretty/tree/v1.0.0) -- github.com/timakin/bodyclose: [87058b9](https://github.com/timakin/bodyclose/tree/87058b9) -- github.com/ultraware/funlen: [v0.0.2](https://github.com/ultraware/funlen/tree/v0.0.2) -- github.com/urfave/negroni: [v1.0.0](https://github.com/urfave/negroni/tree/v1.0.0) -- github.com/valyala/bytebufferpool: [v1.0.0](https://github.com/valyala/bytebufferpool/tree/v1.0.0) -- github.com/valyala/fasthttp: [v1.2.0](https://github.com/valyala/fasthttp/tree/v1.2.0) -- github.com/valyala/quicktemplate: [v1.1.1](https://github.com/valyala/quicktemplate/tree/v1.1.1) -- github.com/valyala/tcplisten: [ceec8f9](https://github.com/valyala/tcplisten/tree/ceec8f9) -- github.com/vektah/gqlparser: [v1.1.2](https://github.com/vektah/gqlparser/tree/v1.1.2) -- github.com/vishvananda/netlink: [v1.0.0](https://github.com/vishvananda/netlink/tree/v1.0.0) -- github.com/vishvananda/netns: [be1fbed](https://github.com/vishvananda/netns/tree/be1fbed) -- github.com/vmware/govmomi: [v0.20.3](https://github.com/vmware/govmomi/tree/v0.20.3) -- go.mongodb.org/mongo-driver: v1.1.2 -- go4.org: 417644f -- golang.org/x/build: 2835ba2 -- golang.org/x/mod: c90efee -- golang.org/x/perf: 6e6d33e -- golang.org/x/tools/gopls: v0.3.3 -- gonum.org/v1/plot: e2840ee -- gopkg.in/errgo.v2: v2.1.0 -- gopkg.in/mcuadros/go-syslog.v2: v2.2.1 -- gopkg.in/resty.v1: v1.12.0 -- gotest.tools/gotestsum: v0.3.5 -- grpc.go4.org: 11d0a25 -- k8s.io/cli-runtime: v0.18.0 -- k8s.io/cloud-provider: v0.18.0 -- k8s.io/cluster-bootstrap: v0.18.0 -- k8s.io/cri-api: v0.18.0 -- k8s.io/csi-translation-lib: v0.18.0 -- k8s.io/heapster: v1.2.0-beta.1 -- k8s.io/kube-aggregator: v0.18.0 -- k8s.io/kube-controller-manager: v0.18.0 -- k8s.io/kube-proxy: v0.18.0 -- k8s.io/kube-scheduler: v0.18.0 -- k8s.io/kubectl: v0.18.0 -- k8s.io/kubelet: v0.18.0 -- k8s.io/legacy-cloud-providers: v0.18.0 -- k8s.io/metrics: v0.18.0 -- k8s.io/repo-infra: v0.0.1-alpha.1 -- k8s.io/sample-apiserver: v0.18.0 -- k8s.io/system-validators: v1.0.4 -- mvdan.cc/interfacer: c200402 -- mvdan.cc/lint: adc824a -- mvdan.cc/unparam: fbb5962 -- rsc.io/pdf: v0.1.1 -- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.7 -- sigs.k8s.io/kustomize: v2.0.3+incompatible -- sigs.k8s.io/structured-merge-diff/v3: v3.0.0 -- sourcegraph.com/sqs/pbtypes: d3ebe8f - -### Changed -- github.com/Azure/azure-sdk-for-go: [v21.1.0+incompatible → v35.0.0+incompatible](https://github.com/Azure/azure-sdk-for-go/compare/v21.1.0...v35.0.0) -- github.com/GoogleCloudPlatform/k8s-cloud-provider: [2e19bb3 → 27a4ced](https://github.com/GoogleCloudPlatform/k8s-cloud-provider/compare/2e19bb3...27a4ced) -- github.com/asaskevich/govalidator: [f9ffefc → f61b66f](https://github.com/asaskevich/govalidator/compare/f9ffefc...f61b66f) -- github.com/aws/aws-sdk-go: [v1.23.22 → v1.28.2](https://github.com/aws/aws-sdk-go/compare/v1.23.22...v1.28.2) -- github.com/coreos/etcd: [v3.3.13+incompatible → v3.3.10+incompatible](https://github.com/coreos/etcd/compare/v3.3.13...v3.3.10) -- github.com/coreos/go-oidc: [065b426 → v2.1.0+incompatible](https://github.com/coreos/go-oidc/compare/065b426...v2.1.0) -- github.com/coreos/go-semver: [v0.2.0 → v0.3.0](https://github.com/coreos/go-semver/compare/v0.2.0...v0.3.0) -- github.com/coreos/go-systemd: [39ca1b0 → 95778df](https://github.com/coreos/go-systemd/compare/39ca1b0...95778df) -- github.com/docker/distribution: [83389a1 → v2.7.1+incompatible](https://github.com/docker/distribution/compare/83389a1...v2.7.1) -- github.com/docker/go-units: [v0.3.3 → v0.4.0](https://github.com/docker/go-units/compare/v0.3.3...v0.4.0) -- github.com/elazarl/goproxy: [c4fc265 → 947c36d](https://github.com/elazarl/goproxy/compare/c4fc265...947c36d) -- github.com/envoyproxy/go-control-plane: [v0.9.0 → 5f8ba28](https://github.com/envoyproxy/go-control-plane/compare/v0.9.0...5f8ba28) -- github.com/go-openapi/analysis: [v0.17.2 → v0.19.5](https://github.com/go-openapi/analysis/compare/v0.17.2...v0.19.5) -- github.com/go-openapi/errors: [v0.17.2 → v0.19.2](https://github.com/go-openapi/errors/compare/v0.17.2...v0.19.2) -- github.com/go-openapi/loads: [v0.17.2 → v0.19.4](https://github.com/go-openapi/loads/compare/v0.17.2...v0.19.4) -- github.com/go-openapi/runtime: [v0.17.2 → v0.19.4](https://github.com/go-openapi/runtime/compare/v0.17.2...v0.19.4) -- github.com/go-openapi/strfmt: [v0.17.0 → v0.19.3](https://github.com/go-openapi/strfmt/compare/v0.17.0...v0.19.3) -- github.com/go-openapi/validate: [v0.18.0 → v0.19.5](https://github.com/go-openapi/validate/compare/v0.18.0...v0.19.5) -- github.com/gogo/protobuf: [65acae2 → v1.3.1](https://github.com/gogo/protobuf/compare/65acae2...v1.3.1) -- github.com/golang/protobuf: [v1.3.2 → v1.3.4](https://github.com/golang/protobuf/compare/v1.3.2...v1.3.4) -- github.com/google/gofuzz: [v1.0.0 → v1.1.0](https://github.com/google/gofuzz/compare/v1.0.0...v1.1.0) -- github.com/gophercloud/gophercloud: [c818fa6 → v0.1.0](https://github.com/gophercloud/gophercloud/compare/c818fa6...v0.1.0) -- github.com/gorilla/mux: [v1.6.2 → v1.7.0](https://github.com/gorilla/mux/compare/v1.6.2...v1.7.0) -- github.com/gorilla/websocket: [4201258 → v1.4.0](https://github.com/gorilla/websocket/compare/4201258...v1.4.0) -- github.com/grpc-ecosystem/go-grpc-middleware: [v1.0.0 → f849b54](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/v1.0.0...f849b54) -- github.com/grpc-ecosystem/grpc-gateway: [v1.4.1 → v1.9.5](https://github.com/grpc-ecosystem/grpc-gateway/compare/v1.4.1...v1.9.5) -- github.com/mailru/easyjson: [b2ccc51 → v0.7.0](https://github.com/mailru/easyjson/compare/b2ccc51...v0.7.0) -- github.com/mattn/go-isatty: [v0.0.4 → v0.0.9](https://github.com/mattn/go-isatty/compare/v0.0.4...v0.0.9) -- github.com/munnerz/goautoneg: [a547fc6 → a7dc8b6](https://github.com/munnerz/goautoneg/compare/a547fc6...a7dc8b6) -- github.com/onsi/ginkgo: [v1.10.3 → v1.11.0](https://github.com/onsi/ginkgo/compare/v1.10.3...v1.11.0) -- github.com/prometheus/client_model: [14fe0d1 → v0.2.0](https://github.com/prometheus/client_model/compare/14fe0d1...v0.2.0) -- github.com/satori/go.uuid: [0aa62d5 → v1.2.0](https://github.com/satori/go.uuid/compare/0aa62d5...v1.2.0) -- github.com/spf13/jwalterweatherman: [v1.0.0 → v1.1.0](https://github.com/spf13/jwalterweatherman/compare/v1.0.0...v1.1.0) -- github.com/urfave/cli: [v1.18.0 → v1.20.0](https://github.com/urfave/cli/compare/v1.18.0...v1.20.0) -- github.com/xiang90/probing: [07dd2e8 → 43a291a](https://github.com/xiang90/probing/compare/07dd2e8...43a291a) -- go.etcd.io/bbolt: v1.3.1-etcd.7 → v1.3.3 -- go.etcd.io/etcd: 83304cf → 3cf2f69 -- go.uber.org/zap: v1.9.1 → v1.10.0 -- golang.org/x/crypto: 5c40567 → bac4c82 -- golang.org/x/tools: 5eefd05 → 6862ede -- golang.org/x/xerrors: a985d34 → 1b5146a -- gonum.org/v1/gonum: 3d26580 → v0.6.2 -- google.golang.org/grpc: v1.25.1 → v1.27.1 -- gopkg.in/natefinch/lumberjack.v2: 20b71e5 → v2.0.0 -- gopkg.in/square/go-jose.v2: 89060de → v2.2.2 -- gopkg.in/yaml.v2: v2.2.7 → v2.2.8 -- honnef.co/go/tools: ea95bdf → v0.0.1-2020.1.3 -- k8s.io/api: bd6ac52 → v0.18.0 -- k8s.io/apiextensions-apiserver: 3de7581 → v0.18.0 -- k8s.io/apimachinery: v0.17.1 → v0.18.0 -- k8s.io/apiserver: 1e17798 → v0.18.0 -- k8s.io/client-go: 6502b5e → v0.18.0 -- k8s.io/code-generator: 732c9ca → v0.18.0 -- k8s.io/component-base: ed2f086 → v0.18.0 -- k8s.io/gengo: 26a6646 → 36b2048 -- k8s.io/kube-openapi: 30be4d1 → bf4fb3b -- k8s.io/kubernetes: v1.14.7 → v1.18.0 -- k8s.io/utils: 8619460 → a9aa75a -- mvdan.cc/xurls/v2: v2.0.0 → v2.1.0 -- sigs.k8s.io/yaml: v1.1.0 → v1.2.0 - -### Removed -- github.com/coreos/bbolt: [v1.3.1-coreos.6](https://github.com/coreos/bbolt/tree/v1.3.1-coreos.6) -- github.com/natefinch/lumberjack: [v2.0.0+incompatible](https://github.com/natefinch/lumberjack/tree/v2.0.0) -- gopkg.in/yaml.v1: 9f9df34 -- sigs.k8s.io/structured-merge-diff: 15d366b diff --git a/CHANGELOG/CHANGELOG-1.1.md b/CHANGELOG/CHANGELOG-1.1.md deleted file mode 100644 index c7ffa5938..000000000 --- a/CHANGELOG/CHANGELOG-1.1.md +++ /dev/null @@ -1,47 +0,0 @@ -# v1.1.0 - Changelog since v1.0.0 - -## Changes by Kind - -## Feature - -- Improved Windows Support - - Update driver to use CSI proxy beta for Windows ([#607](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/607), [@jingxu97](https://github.com/jingxu97)) - - Add volume expansion support for Windows in GCE PD CSI driver ([#637](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/637), [@jingxu97](https://github.com/jingxu97)) - - Add defensive check for Windows. GCE PD CSI driver only support ntfs for Windows. If other fstype is passed, return error. ([#641](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/641), [@jingxu97](https://github.com/jingxu97)) - - Modify NodeUnstageVolume call for Windows to use csi_proxy dismount call. With CSI proxy v0.2.2+, this will also result in flush of data cache before mount point removal. ([#633](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/633), [@jingxu97](https://github.com/jingxu97)) - - Add VolumeStats for Windows ([#627](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/627), [@jingxu97](https://github.com/jingxu97)) - -## Bug or Regression - -- Add PSP for the controller Deployment ([#623](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/623), [@george-angel](https://github.com/george-angel)) -- Update GCE PD CSI Driver Docker base image to `k8s.gcr.io/build-image/debian-base-amd64:v2.1.3` (previously `gcr.io/google-containers/debian-base-amd64:v2.0.0`) to address CVEs. ([#596](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/596), [@saad-ali](https://github.com/saad-ali)) - - Also cherry picked to 1.0.1. - -## Tests - -- PD CSI e2e test infra should take GKE node version as an optional input argument. ([#603](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/603), [@saikat-royc](https://github.com/saikat-royc)) -- Collect managed pd csi driver logs from node ([#619](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/619), [@saikat-royc](https://github.com/saikat-royc)) -- Enable dump GKE node logs ([#635](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/635), [@saikat-royc](https://github.com/saikat-royc)) -- Enable volume expansion test for GKE managed driver ([#584](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/584), [@saikat-royc](https://github.com/saikat-royc)) -- Provide a knob to run intree and csi plugin tests ([#629](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/629), [@saikat-royc](https://github.com/saikat-royc)) -- Fix CI script focus string ([#630](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/630), [@saikat-royc](https://github.com/saikat-royc)) -- Build only linux container image for tests on Linux ([#636](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/636), [@jingxu97](https://github.com/jingxu97)) - -## Dependencies - -### Added -- google.golang.org/protobuf: v1.25.0 - -### Changed -- github.com/golang/protobuf: [v1.3.4 → v1.4.1](https://github.com/golang/protobuf/compare/v1.3.4...v1.4.1) -- github.com/google/go-cmp: [v0.3.1 → v0.5.0](https://github.com/google/go-cmp/compare/v0.3.1...v0.5.0) -- github.com/kubernetes-csi/csi-proxy/client: [9eff164 → v0.2.1](https://github.com/kubernetes-csi/csi-proxy/client/compare/9eff164...v0.2.1) -- golang.org/x/mod: c90efee → 4bf6d31 -- golang.org/x/tools: 6862ede → 5eefd05 -- golang.org/x/xerrors: 1b5146a → 9bdfabe -- google.golang.org/genproto: 6bbd007 → cb27e3a -- honnef.co/go/tools: v0.0.1-2020.1.3 → v0.0.1-2019.2.2 -- mvdan.cc/xurls/v2: v2.1.0 → v2.0.0 - -### Removed -- golang.org/x/tools/gopls: v0.3.3 diff --git a/CHANGELOG/CHANGELOG-1.2.md b/CHANGELOG/CHANGELOG-1.2.md deleted file mode 100644 index 75a70458e..000000000 --- a/CHANGELOG/CHANGELOG-1.2.md +++ /dev/null @@ -1,139 +0,0 @@ -# v1.2.6 - Changelog since v1.2.5 - -## Changes by Kind - -### Uncategorized - -- Cherry-pick #930: Update golang version to 1.17.8 for building drivers. ([#938](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/938), [@pwschuurman](https://github.com/pwschuurman)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.2.5 - Changelog since v1.2.4 - -- Update base image to buster-1.10.0 - -# v1.2.4 - Changelog since v1.2.3 - -## Changes by Kind - -### Bug or Regression - -- Update go builder to 1.17 ([#850](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/850), [@mattcary](https://github.com/mattcary)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.2.3 - Changelog since v1.2.1 - -## Changes by Kind - -### Bug or Regression - -- Update debian images to buster-v1.9.0 ([#839](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/839), [@mattcary](https://github.com/mattcary)) - -### Uncategorized - -- It is now possible to mount a volume with XFS filesystem and its restored snapshot. ([#838](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/838), [@leiyiz](https://github.com/leiyiz)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.2.2 - Changelog since v1.2.1 - -## Changes by Kind - -### Feature - -- Update base image to buster-1.6.0 ([#760](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/760), [@cpanato](https://github.com/cpanato)) - -- Update base image to buster-1.5.0. ([#755](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/755), [@mattcary](https://github.com/mattcary)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - - -# v1.2.1 - Changelog since v1.2.0 - -## Tests - -- Update kustomize to 3.9.4 ([703](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/703), [@saikat-royc](https://github.com/saikat-royc)) -- Fix cluster list parsing for latest gcloud version ([720](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/720), [@verult](https://github.com/verult)) - -## Other - -- Remove Probe logging ([682](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/682), [@Jiawei0227](https://github.com/Jiawei0227)) -- Round up pdcsi driver size in CreateVolume ([684](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/684), [@Jiawei0227](https://github.com/Jiawei0227)) -- Add gce disk labels support via create volume parameters ([718](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/718), [@mattcary](https://github.com/mattcary)) -- Emit GKE PDCSI component version metric ([719](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/719), [@saikat-royc](https://github.com/saikat-royc)) -- Add cloudbuild configuration to build the image gcp-compute-persistent-disk-csi-driver ([734](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/734), [@cpanato](https://github.com/cpanato)) -- Bump go to the latest 1.13 available in Dockerfile ([734](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/734), [@cpanato](https://github.com/cpanato)) - -# v1.2.0 - Changelog since v1.1.0 - -## Features - -- Improved Windows Support - - Add Disk online/offline logic in nodeStageVolume/nodeUnstageVolume calls for Windows. This requires the CSI Proxy `disk.v1beta2` group, which is only available in CSI proxy v0.2.2+. ([#661](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/661), [@jingxu97](https://github.com/jingxu97)) - -## Bugs or Regressions - -- Fix "volume is mounted" check during NodePublishVolume for Windows ([#666](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/666), [@jingxu97](https://github.com/jingxu97)) -- Add empty string check on returned volumeIds to avoid nil pointer panic ([#673](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/673), [@jingxu97](https://github.com/jingxu97)) - -## Tests - -- Update kustomizer to 3.8.6. ([#661](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/661), [@jingxu97](https://github.com/jingxu97)) -- Updates named pipe path in node.yaml for base deployment overlay to use CSI proxy disk v1beta2 (previously v1beta1) for Windows. ([#669](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/669), [@jingxu97](https://github.com/jingxu97)) -- Fix node version check for node skew tests. ([#645](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/645), [@saikat-royc](https://github.com/saikat-royc)) -- Add run-k8s-integration-ci.sh that the prow driver now expects to be in each release. ([#655](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/655), [@mattcary](https://github.com/mattcary)) -- Use node version on GKE when detecting XFS compatibility. ([#656](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/656), [@mattcary](https://github.com/mattcary)) -- Skip Pod fsgroupchange policy tests for < 1.20 k8s. ([#667](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/667), [@saikat-royc](https://github.com/saikat-royc)) -- Shorten the GKE cluster name. ([#671](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/671), [@saikat-royc](https://github.com/saikat-royc)) - -## Documentation - -No notable changes. - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -- github.com/kubernetes-csi/csi-proxy/client: [v0.2.1 → v0.2.2](https://github.com/kubernetes-csi/csi-proxy/client/compare/v0.2.1...v0.2.2) - -### Removed -_Nothing has changed._ diff --git a/CHANGELOG/CHANGELOG-1.3.md b/CHANGELOG/CHANGELOG-1.3.md deleted file mode 100644 index 458912520..000000000 --- a/CHANGELOG/CHANGELOG-1.3.md +++ /dev/null @@ -1,140 +0,0 @@ -# v1.3.6 - Changelog since v1.3.5 - -## Changes by Kind - -### Uncategorized - -- Cherry-pick #930: Update golang version to 1.17.8 for building drivers. ([#937](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/937), [@pwschuurman](https://github.com/pwschuurman)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.3.5 - Changelog since v1.3.4 - -- Bump base image to buster-v1.10.0 - - -# v1.3.4 - Changelog since v1.3.3 - -## Changes by Kind - -### Bug or Regression - -- Update go builder to 1.17 ([#850](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/850), [@mattcary](https://github.com/mattcary)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.3.3 - Changelog since v1.3.1 - -## Changes by Kind - -### Bug or Regression - -- Update debian image to buster-1.9.0. ([#841](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/841), [@mattcary](https://github.com/mattcary)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.3.1 - Changelog since v1.3.0 - -### Issues - -- Fixes issue where `ControllerPublishVolume` is called repeatly if gke nodes are in different cloud zones than the gke controller ([#817](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/817), [@leiyiz](https://github.com/leiyiz)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.3.0 - Changelog since v1.2.2 - -### Feature - -- A new `k8s-tag-cluster-id` command line option has been added. If specified, the resulting PD disk will be labeled with "kubernetes_io_cluster_": "owned". ([#693](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/693), [@tsmetana](https://github.com/tsmetana)) -- Add cloudbuild config to build gcp-compute-persistent-disk-csi-driver image ([#724](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/724), [@cpanato](https://github.com/cpanato)) -- Added Support for Windows Server 2004 and 20H2. ([#691](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/691), [@jeremyje](https://github.com/jeremyje)) -- Bumped csi-proxy client library to v1.0.0 ([#738](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/738), [@mauriciopoppe](https://github.com/mauriciopoppe)) -- It is now possible to access snapshots and volumes across different projects. ([#782](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/782), [@christian-roggia](https://github.com/christian-roggia)) -- Updating the following image versions in stable deployment specs: - - csi-provisioner: v2.1.0 - - csi-attacher: v3.1.0 - - csi-resizer: v1.1.0 - - csi-snapshotter: v3.0.3 - - csi-node-driver-registrar: v2.1.0 - - Adding a liveness probe to restart a sidecar if it fails leader election health check. ([#699](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/699), [@verult](https://github.com/verult)) -- Users will be able to set the storage locations for snapshots by specifying them in the snapshot class. ([#793](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/793), [@TeweiLuo](https://github.com/TeweiLuo)) -- Disk labels support via CreateVolume (and hence StorageClass) parameters ([#718](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/718), [@mattcary](https://github.com/mattcary)) - -### Documentation - -- Documentation for overlays ([#708](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/708), [@saikat-royc](https://github.com/saikat-royc)) -- Update README for overlays ([#715](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/715), [@saikat-royc](https://github.com/saikat-royc)) - -### Failing Test - -- V1 CSIDriver resources are deployed for 1.18+ clusters. ([#783](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/783), [@mattcary](https://github.com/mattcary)) - -### Bug or Regression - -- Do not run controller service in node. ([#702](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/702), [@mattcary](https://github.com/mattcary)) -- Fix a bug that CreateVolume should round up the request_bytes. ([#684](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/684), [@Jiawei0227](https://github.com/Jiawei0227)) -- It is now possible to mount a volume with XFS filesystem and its restored snapshot. ([#788](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/788), [@jsafrane](https://github.com/jsafrane)) - -### Other (Cleanup or Flake) - -- Emit GKE component version metric ([#719](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/719), [@saikat-royc](https://github.com/saikat-royc)) - -### Uncategorized - -- Remove probe logging to reduce noise ([#682](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/682), [@Jiawei0227](https://github.com/Jiawei0227)) - -## Dependencies - -### Added -- k8s.io/klog/v2: v2.4.0 -- k8s.io/mount-utils: v0.20.6 - -### Changed -- github.com/Microsoft/go-winio: [v0.4.14 → v0.4.16](https://github.com/Microsoft/go-winio/compare/v0.4.14...v0.4.16) -- github.com/go-logr/logr: [v0.1.0 → v0.2.0](https://github.com/go-logr/logr/compare/v0.1.0...v0.2.0) -- github.com/kr/pretty: [v0.1.0 → v0.2.0](https://github.com/kr/pretty/compare/v0.1.0...v0.2.0) -- github.com/kubernetes-csi/csi-proxy/client: [v0.2.2 → v1.0.0](https://github.com/kubernetes-csi/csi-proxy/client/compare/v0.2.2...v1.0.0) -- github.com/pkg/errors: [v0.8.1 → v0.9.1](https://github.com/pkg/errors/compare/v0.8.1...v0.9.1) -- github.com/stretchr/testify: [v1.4.0 → v1.6.1](https://github.com/stretchr/testify/compare/v1.4.0...v1.6.1) -- gopkg.in/check.v1: 788fd78 → 41f04d3 -- gopkg.in/yaml.v3: 674ba3e → 9f266ea -- k8s.io/utils: a9aa75a → 67b214c - -### Removed -_Nothing has changed._ diff --git a/CHANGELOG/CHANGELOG-1.4.md b/CHANGELOG/CHANGELOG-1.4.md deleted file mode 100644 index ab67839c5..000000000 --- a/CHANGELOG/CHANGELOG-1.4.md +++ /dev/null @@ -1,439 +0,0 @@ -# v1.4.1 - Changelog since v1.4.0 - -## Changes by Kind - -### Bug or Regression - -- Fix #942 that can cause attacher to think a disk has been attached even if the attach failed. (#945, @mattcary) - -### Uncategorized - -- Add support for NVMe persistent disks (#946, @pwschuurman) -- Cherry-pick #930: Update golang version to 1.17.8 for building drivers. (#936, @pwschuurman) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -_Nothing has changed._ - -# v1.4.0 - Changelog since v1.3.4 - -## Changes by Kind - -### Feature - -- Updates Kubernetes dependencies to v1.22.0 ([#814](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/814), [@chrishenzie](https://github.com/chrishenzie)) -- Add attach/detach back off ([#847](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/847), [@lizhuqi](https://github.com/lizhuqi)) -- Enables volume cloning. ([#854](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/854), [@amacaskill](https://github.com/amacaskill)) -- Use the most recent 1.3.4 image for prow rc master ([#864](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/864), [@saikat-royc](https://github.com/saikat-royc)) -- Change to distroless base image ([#870](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/870), [@amacaskill](https://github.com/amacaskill)) -- Turn on controller-publish-readonly flag and add validation in pd-csi driver for when readonly is on ([#869](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/869), [@leiyiz](https://github.com/leiyiz)) - -### Documentation - -- Doc and image update for 1.3.4 release ([#855](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/855), [@saikat-royc](https://github.com/saikat-royc)) -- Update release 1.2.4 CHANGELOG ([#862](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/862), [@saikat-royc](https://github.com/saikat-royc)) - -### Bug or Regression - -### Other (Cleanup or Flake) - -- Update debian base image to 1.9.0 ([#826](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/826), [@saikat-royc](https://github.com/saikat-royc)) -- Updates the CSI sanity test suite to v4.2.0 ([#816](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/816), [@chrishenzie](https://github.com/chrishenzie)) - -### Uncategorized - -- Update snapshot sidecar roles ([#857](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/857), [@saikat-royc](https://github.com/saikat-royc)) - -## Dependencies - -### Added -- cloud.google.com/go/firestore: v1.1.0 -- github.com/OneOfOne/xxhash: [v1.2.2](https://github.com/OneOfOne/xxhash/tree/v1.2.2) -- github.com/antihax/optional: [v1.0.0](https://github.com/antihax/optional/tree/v1.0.0) -- github.com/armon/go-metrics: [f0300d1](https://github.com/armon/go-metrics/tree/f0300d1) -- github.com/armon/go-radix: [7fddfc3](https://github.com/armon/go-radix/tree/7fddfc3) -- github.com/benbjohnson/clock: [v1.0.3](https://github.com/benbjohnson/clock/tree/v1.0.3) -- github.com/bits-and-blooms/bitset: [v1.2.0](https://github.com/bits-and-blooms/bitset/tree/v1.2.0) -- github.com/bketelsen/crypt: [5cbc8cc](https://github.com/bketelsen/crypt/tree/5cbc8cc) -- github.com/certifi/gocertifi: [2c3bb06](https://github.com/certifi/gocertifi/tree/2c3bb06) -- github.com/cespare/xxhash/v2: [v2.1.1](https://github.com/cespare/xxhash/v2/tree/v2.1.1) -- github.com/cespare/xxhash: [v1.1.0](https://github.com/cespare/xxhash/tree/v1.1.0) -- github.com/checkpoint-restore/go-criu/v5: [v5.0.0](https://github.com/checkpoint-restore/go-criu/v5/tree/v5.0.0) -- github.com/cockroachdb/errors: [v1.2.4](https://github.com/cockroachdb/errors/tree/v1.2.4) -- github.com/cockroachdb/logtags: [eb05cc2](https://github.com/cockroachdb/logtags/tree/eb05cc2) -- github.com/containerd/cgroups: [0dbf7f0](https://github.com/containerd/cgroups/tree/0dbf7f0) -- github.com/containerd/continuity: [aaeac12](https://github.com/containerd/continuity/tree/aaeac12) -- github.com/containerd/fifo: [a9fb20d](https://github.com/containerd/fifo/tree/a9fb20d) -- github.com/containerd/go-runc: [5a6d9f3](https://github.com/containerd/go-runc/tree/5a6d9f3) -- github.com/containerd/ttrpc: [v1.0.2](https://github.com/containerd/ttrpc/tree/v1.0.2) -- github.com/coredns/caddy: [v1.1.0](https://github.com/coredns/caddy/tree/v1.1.0) -- github.com/coreos/bbolt: [v1.3.2](https://github.com/coreos/bbolt/tree/v1.3.2) -- github.com/coreos/go-systemd/v22: [v22.3.2](https://github.com/coreos/go-systemd/v22/tree/v22.3.2) -- github.com/cpuguy83/go-md2man/v2: [v2.0.0](https://github.com/cpuguy83/go-md2man/v2/tree/v2.0.0) -- github.com/dgryski/go-sip13: [e10d5fe](https://github.com/dgryski/go-sip13/tree/e10d5fe) -- github.com/felixge/httpsnoop: [v1.0.1](https://github.com/felixge/httpsnoop/tree/v1.0.1) -- github.com/form3tech-oss/jwt-go: [v3.2.3+incompatible](https://github.com/form3tech-oss/jwt-go/tree/v3.2.3) -- github.com/frankban/quicktest: [v1.11.3](https://github.com/frankban/quicktest/tree/v1.11.3) -- github.com/fvbommel/sortorder: [v1.0.1](https://github.com/fvbommel/sortorder/tree/v1.0.1) -- github.com/getsentry/raven-go: [v0.2.0](https://github.com/getsentry/raven-go/tree/v0.2.0) -- github.com/go-errors/errors: [v1.0.1](https://github.com/go-errors/errors/tree/v1.0.1) -- github.com/go-kit/log: [v0.1.0](https://github.com/go-kit/log/tree/v0.1.0) -- github.com/godbus/dbus/v5: [v5.0.4](https://github.com/godbus/dbus/v5/tree/v5.0.4) -- github.com/gofrs/uuid: [v4.0.0+incompatible](https://github.com/gofrs/uuid/tree/v4.0.0) -- github.com/google/shlex: [e7afc7f](https://github.com/google/shlex/tree/e7afc7f) -- github.com/hashicorp/consul/api: [v1.1.0](https://github.com/hashicorp/consul/api/tree/v1.1.0) -- github.com/hashicorp/consul/sdk: [v0.1.1](https://github.com/hashicorp/consul/sdk/tree/v0.1.1) -- github.com/hashicorp/go-cleanhttp: [v0.5.1](https://github.com/hashicorp/go-cleanhttp/tree/v0.5.1) -- github.com/hashicorp/go-immutable-radix: [v1.0.0](https://github.com/hashicorp/go-immutable-radix/tree/v1.0.0) -- github.com/hashicorp/go-msgpack: [v0.5.3](https://github.com/hashicorp/go-msgpack/tree/v0.5.3) -- github.com/hashicorp/go-rootcerts: [v1.0.0](https://github.com/hashicorp/go-rootcerts/tree/v1.0.0) -- github.com/hashicorp/go-sockaddr: [v1.0.0](https://github.com/hashicorp/go-sockaddr/tree/v1.0.0) -- github.com/hashicorp/go-uuid: [v1.0.1](https://github.com/hashicorp/go-uuid/tree/v1.0.1) -- github.com/hashicorp/go.net: [v0.0.1](https://github.com/hashicorp/go.net/tree/v0.0.1) -- github.com/hashicorp/logutils: [v1.0.0](https://github.com/hashicorp/logutils/tree/v1.0.0) -- github.com/hashicorp/mdns: [v1.0.0](https://github.com/hashicorp/mdns/tree/v1.0.0) -- github.com/hashicorp/memberlist: [v0.1.3](https://github.com/hashicorp/memberlist/tree/v0.1.3) -- github.com/hashicorp/serf: [v0.8.2](https://github.com/hashicorp/serf/tree/v0.8.2) -- github.com/ishidawataru/sctp: [7c296d4](https://github.com/ishidawataru/sctp/tree/7c296d4) -- github.com/jmespath/go-jmespath/internal/testify: [v1.5.1](https://github.com/jmespath/go-jmespath/internal/testify/tree/v1.5.1) -- github.com/josharian/intern: [v1.0.0](https://github.com/josharian/intern/tree/v1.0.0) -- github.com/jpillora/backoff: [v1.0.0](https://github.com/jpillora/backoff/tree/v1.0.0) -- github.com/kubernetes-csi/csi-test/v4: [v4.2.0](https://github.com/kubernetes-csi/csi-test/v4/tree/v4.2.0) -- github.com/mitchellh/cli: [v1.0.0](https://github.com/mitchellh/cli/tree/v1.0.0) -- github.com/mitchellh/go-testing-interface: [v1.0.0](https://github.com/mitchellh/go-testing-interface/tree/v1.0.0) -- github.com/mitchellh/gox: [v0.4.0](https://github.com/mitchellh/gox/tree/v0.4.0) -- github.com/mitchellh/iochan: [v1.0.0](https://github.com/mitchellh/iochan/tree/v1.0.0) -- github.com/moby/ipvs: [v1.0.1](https://github.com/moby/ipvs/tree/v1.0.1) -- github.com/moby/spdystream: [v0.2.0](https://github.com/moby/spdystream/tree/v0.2.0) -- github.com/moby/sys/mountinfo: [v0.4.1](https://github.com/moby/sys/mountinfo/tree/v0.4.1) -- github.com/moby/term: [9d4ed18](https://github.com/moby/term/tree/9d4ed18) -- github.com/monochromegane/go-gitignore: [205db1a](https://github.com/monochromegane/go-gitignore/tree/205db1a) -- github.com/niemeyer/pretty: [a10e7ca](https://github.com/niemeyer/pretty/tree/a10e7ca) -- github.com/nxadm/tail: [v1.4.5](https://github.com/nxadm/tail/tree/v1.4.5) -- github.com/oklog/ulid: [v1.3.1](https://github.com/oklog/ulid/tree/v1.3.1) -- github.com/opentracing/opentracing-go: [v1.1.0](https://github.com/opentracing/opentracing-go/tree/v1.1.0) -- github.com/pascaldekloe/goe: [57f6aae](https://github.com/pascaldekloe/goe/tree/57f6aae) -- github.com/posener/complete: [v1.1.1](https://github.com/posener/complete/tree/v1.1.1) -- github.com/prometheus/tsdb: [v0.7.1](https://github.com/prometheus/tsdb/tree/v0.7.1) -- github.com/robertkrimen/otto: [ef014fd](https://github.com/robertkrimen/otto/tree/ef014fd) -- github.com/robfig/cron/v3: [v3.0.1](https://github.com/robfig/cron/v3/tree/v3.0.1) -- github.com/russross/blackfriday/v2: [v2.0.1](https://github.com/russross/blackfriday/v2/tree/v2.0.1) -- github.com/ryanuber/columnize: [9b3edd6](https://github.com/ryanuber/columnize/tree/9b3edd6) -- github.com/sean-/seed: [e2103e2](https://github.com/sean-/seed/tree/e2103e2) -- github.com/shurcooL/sanitized_anchor_name: [v1.0.0](https://github.com/shurcooL/sanitized_anchor_name/tree/v1.0.0) -- github.com/spaolacci/murmur3: [f09979e](https://github.com/spaolacci/murmur3/tree/f09979e) -- github.com/stoewer/go-strcase: [v1.2.0](https://github.com/stoewer/go-strcase/tree/v1.2.0) -- github.com/subosito/gotenv: [v1.2.0](https://github.com/subosito/gotenv/tree/v1.2.0) -- github.com/willf/bitset: [v1.1.11](https://github.com/willf/bitset/tree/v1.1.11) -- github.com/xlab/treeprint: [a009c39](https://github.com/xlab/treeprint/tree/a009c39) -- go.etcd.io/etcd/api/v3: v3.5.0 -- go.etcd.io/etcd/client/pkg/v3: v3.5.0 -- go.etcd.io/etcd/client/v2: v2.305.0 -- go.etcd.io/etcd/client/v3: v3.5.0 -- go.etcd.io/etcd/pkg/v3: v3.5.0 -- go.etcd.io/etcd/raft/v3: v3.5.0 -- go.etcd.io/etcd/server/v3: v3.5.0 -- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.20.0 -- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.20.0 -- go.opentelemetry.io/contrib: v0.20.0 -- go.opentelemetry.io/otel/exporters/otlp: v0.20.0 -- go.opentelemetry.io/otel/metric: v0.20.0 -- go.opentelemetry.io/otel/oteltest: v0.20.0 -- go.opentelemetry.io/otel/sdk/export/metric: v0.20.0 -- go.opentelemetry.io/otel/sdk/metric: v0.20.0 -- go.opentelemetry.io/otel/sdk: v0.20.0 -- go.opentelemetry.io/otel/trace: v0.20.0 -- go.opentelemetry.io/otel: v0.20.0 -- go.opentelemetry.io/proto/otlp: v0.7.0 -- go.starlark.net: 8dd3e2e -- go.uber.org/goleak: v1.1.10 -- golang.org/x/term: 6a3ed07 -- gopkg.in/ini.v1: v1.51.0 -- gopkg.in/sourcemap.v1: v1.0.5 -- gotest.tools/v3: v3.0.3 -- k8s.io/component-helpers: v0.22.0 -- k8s.io/controller-manager: v0.22.0 -- k8s.io/pod-security-admission: v0.22.0 -- sigs.k8s.io/kustomize/api: v0.8.11 -- sigs.k8s.io/kustomize/cmd/config: v0.9.13 -- sigs.k8s.io/kustomize/kustomize/v4: v4.2.0 -- sigs.k8s.io/kustomize/kyaml: v0.11.0 -- sigs.k8s.io/structured-merge-diff/v4: v4.1.2 - -### Changed -- dmitri.shuralyov.com/gpu/mtl: 666a987 → 28db891 -- github.com/Azure/azure-sdk-for-go: [v35.0.0+incompatible → v55.0.0+incompatible](https://github.com/Azure/azure-sdk-for-go/compare/v35.0.0...v55.0.0) -- github.com/Azure/go-ansiterm: [d6e3b33 → d185dfc](https://github.com/Azure/go-ansiterm/compare/d6e3b33...d185dfc) -- github.com/Azure/go-autorest/autorest/adal: [v0.5.0 → v0.9.13](https://github.com/Azure/go-autorest/autorest/adal/compare/v0.5.0...v0.9.13) -- github.com/Azure/go-autorest/autorest/date: [v0.1.0 → v0.3.0](https://github.com/Azure/go-autorest/autorest/date/compare/v0.1.0...v0.3.0) -- github.com/Azure/go-autorest/autorest/mocks: [v0.2.0 → v0.4.1](https://github.com/Azure/go-autorest/autorest/mocks/compare/v0.2.0...v0.4.1) -- github.com/Azure/go-autorest/autorest/to: [v0.2.0 → v0.4.0](https://github.com/Azure/go-autorest/autorest/to/compare/v0.2.0...v0.4.0) -- github.com/Azure/go-autorest/autorest: [v0.9.0 → v0.11.18](https://github.com/Azure/go-autorest/autorest/compare/v0.9.0...v0.11.18) -- github.com/Azure/go-autorest/logger: [v0.1.0 → v0.2.1](https://github.com/Azure/go-autorest/logger/compare/v0.1.0...v0.2.1) -- github.com/Azure/go-autorest/tracing: [v0.5.0 → v0.6.0](https://github.com/Azure/go-autorest/tracing/compare/v0.5.0...v0.6.0) -- github.com/Azure/go-autorest: [v11.1.2+incompatible → v14.2.0+incompatible](https://github.com/Azure/go-autorest/compare/v11.1.2...v14.2.0) -- github.com/GoogleCloudPlatform/k8s-cloud-provider: [27a4ced → 7901bc8](https://github.com/GoogleCloudPlatform/k8s-cloud-provider/compare/27a4ced...7901bc8) -- github.com/Microsoft/hcsshim: [672e52e → 5eafd15](https://github.com/Microsoft/hcsshim/compare/672e52e...5eafd15) -- github.com/NYTimes/gziphandler: [56545f4 → v1.1.1](https://github.com/NYTimes/gziphandler/compare/56545f4...v1.1.1) -- github.com/alecthomas/template: [a0175ee → fb15b89](https://github.com/alecthomas/template/compare/a0175ee...fb15b89) -- github.com/alecthomas/units: [2efee85 → f65c72e](https://github.com/alecthomas/units/compare/2efee85...f65c72e) -- github.com/auth0/go-jwt-middleware: [5493cab → v1.0.1](https://github.com/auth0/go-jwt-middleware/compare/5493cab...v1.0.1) -- github.com/aws/aws-sdk-go: [v1.28.2 → v1.38.49](https://github.com/aws/aws-sdk-go/compare/v1.28.2...v1.38.49) -- github.com/cilium/ebpf: [95b36a5 → v0.6.2](https://github.com/cilium/ebpf/compare/95b36a5...v0.6.2) -- github.com/cncf/udpa/go: [269d4d4 → 5459f2c](https://github.com/cncf/udpa/go/compare/269d4d4...5459f2c) -- github.com/cockroachdb/datadriven: [80d97fb → bf6692d](https://github.com/cockroachdb/datadriven/compare/80d97fb...bf6692d) -- github.com/container-storage-interface/spec: [v1.2.0 → v1.5.0](https://github.com/container-storage-interface/spec/compare/v1.2.0...v1.5.0) -- github.com/containerd/console: [84eeaae → v1.0.2](https://github.com/containerd/console/compare/84eeaae...v1.0.2) -- github.com/containerd/containerd: [v1.0.2 → v1.4.4](https://github.com/containerd/containerd/compare/v1.0.2...v1.4.4) -- github.com/containerd/typeurl: [2a93cfd → v1.0.1](https://github.com/containerd/typeurl/compare/2a93cfd...v1.0.1) -- github.com/containernetworking/cni: [v0.7.1 → v0.8.1](https://github.com/containernetworking/cni/compare/v0.7.1...v0.8.1) -- github.com/coredns/corefile-migration: [v1.0.6 → v1.0.12](https://github.com/coredns/corefile-migration/compare/v1.0.6...v1.0.12) -- github.com/coreos/etcd: [v3.3.10+incompatible → v3.3.13+incompatible](https://github.com/coreos/etcd/compare/v3.3.10...v3.3.13) -- github.com/coreos/pkg: [97fdf19 → 399ea9e](https://github.com/coreos/pkg/compare/97fdf19...399ea9e) -- github.com/creack/pty: [v1.1.7 → v1.1.11](https://github.com/creack/pty/compare/v1.1.7...v1.1.11) -- github.com/docker/docker: [71cd53e → v20.10.2+incompatible](https://github.com/docker/docker/compare/71cd53e...v20.10.2) -- github.com/envoyproxy/go-control-plane: [v0.9.4 → 668b12f](https://github.com/envoyproxy/go-control-plane/compare/v0.9.4...668b12f) -- github.com/evanphx/json-patch: [v4.5.0+incompatible → v4.11.0+incompatible](https://github.com/evanphx/json-patch/compare/v4.5.0...v4.11.0) -- github.com/fsnotify/fsnotify: [v1.4.7 → v1.4.9](https://github.com/fsnotify/fsnotify/compare/v1.4.7...v1.4.9) -- github.com/go-kit/kit: [v0.8.0 → v0.9.0](https://github.com/go-kit/kit/compare/v0.8.0...v0.9.0) -- github.com/go-logfmt/logfmt: [v0.3.0 → v0.5.0](https://github.com/go-logfmt/logfmt/compare/v0.3.0...v0.5.0) -- github.com/go-logr/logr: [v0.2.0 → v0.4.0](https://github.com/go-logr/logr/compare/v0.2.0...v0.4.0) -- github.com/go-openapi/jsonpointer: [v0.19.3 → v0.19.5](https://github.com/go-openapi/jsonpointer/compare/v0.19.3...v0.19.5) -- github.com/go-openapi/jsonreference: [v0.19.3 → v0.19.5](https://github.com/go-openapi/jsonreference/compare/v0.19.3...v0.19.5) -- github.com/go-openapi/swag: [v0.19.5 → v0.19.14](https://github.com/go-openapi/swag/compare/v0.19.5...v0.19.14) -- github.com/gogo/protobuf: [v1.3.1 → v1.3.2](https://github.com/gogo/protobuf/compare/v1.3.1...v1.3.2) -- github.com/golang/groupcache: [8c9f03a → 41bb18b](https://github.com/golang/groupcache/compare/8c9f03a...41bb18b) -- github.com/golang/protobuf: [v1.4.2 → v1.5.2](https://github.com/golang/protobuf/compare/v1.4.2...v1.5.2) -- github.com/google/btree: [v1.0.0 → v1.0.1](https://github.com/google/btree/compare/v1.0.0...v1.0.1) -- github.com/google/cadvisor: [v0.35.0 → v0.39.2](https://github.com/google/cadvisor/compare/v0.35.0...v0.39.2) -- github.com/google/go-cmp: [v0.5.2 → v0.5.5](https://github.com/google/go-cmp/compare/v0.5.2...v0.5.5) -- github.com/google/uuid: [v1.1.1 → v1.1.2](https://github.com/google/uuid/compare/v1.1.1...v1.1.2) -- github.com/googleapis/gnostic: [v0.3.1 → v0.5.5](https://github.com/googleapis/gnostic/compare/v0.3.1...v0.5.5) -- github.com/gopherjs/gopherjs: [0766667 → fce0ec3](https://github.com/gopherjs/gopherjs/compare/0766667...fce0ec3) -- github.com/gorilla/mux: [v1.7.0 → v1.8.0](https://github.com/gorilla/mux/compare/v1.7.0...v1.8.0) -- github.com/gorilla/websocket: [v1.4.0 → v1.4.2](https://github.com/gorilla/websocket/compare/v1.4.0...v1.4.2) -- github.com/grpc-ecosystem/go-grpc-middleware: [f849b54 → v1.3.0](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/f849b54...v1.3.0) -- github.com/grpc-ecosystem/grpc-gateway: [v1.9.5 → v1.16.0](https://github.com/grpc-ecosystem/grpc-gateway/compare/v1.9.5...v1.16.0) -- github.com/heketi/heketi: [c2e2a4a → v10.3.0+incompatible](https://github.com/heketi/heketi/compare/c2e2a4a...v10.3.0) -- github.com/jmespath/go-jmespath: [c2b33e8 → v0.4.0](https://github.com/jmespath/go-jmespath/compare/c2b33e8...v0.4.0) -- github.com/jonboulle/clockwork: [v0.1.0 → v0.2.2](https://github.com/jonboulle/clockwork/compare/v0.1.0...v0.2.2) -- github.com/json-iterator/go: [v1.1.8 → v1.1.11](https://github.com/json-iterator/go/compare/v1.1.8...v1.1.11) -- github.com/julienschmidt/httprouter: [v1.2.0 → v1.3.0](https://github.com/julienschmidt/httprouter/compare/v1.2.0...v1.3.0) -- github.com/karrick/godirwalk: [v1.7.5 → v1.16.1](https://github.com/karrick/godirwalk/compare/v1.7.5...v1.16.1) -- github.com/kisielk/errcheck: [v1.2.0 → v1.5.0](https://github.com/kisielk/errcheck/compare/v1.2.0...v1.5.0) -- github.com/konsorten/go-windows-terminal-sequences: [v1.0.2 → v1.0.3](https://github.com/konsorten/go-windows-terminal-sequences/compare/v1.0.2...v1.0.3) -- github.com/kr/pretty: [v0.2.0 → v0.2.1](https://github.com/kr/pretty/compare/v0.2.0...v0.2.1) -- github.com/kr/text: [v0.1.0 → v0.2.0](https://github.com/kr/text/compare/v0.1.0...v0.2.0) -- github.com/mailru/easyjson: [v0.7.0 → v0.7.6](https://github.com/mailru/easyjson/compare/v0.7.0...v0.7.6) -- github.com/mattn/go-isatty: [v0.0.9 → v0.0.4](https://github.com/mattn/go-isatty/compare/v0.0.9...v0.0.4) -- github.com/mattn/go-runewidth: [v0.0.2 → v0.0.7](https://github.com/mattn/go-runewidth/compare/v0.0.2...v0.0.7) -- github.com/matttproud/golang_protobuf_extensions: [v1.0.1 → c182aff](https://github.com/matttproud/golang_protobuf_extensions/compare/v1.0.1...c182aff) -- github.com/miekg/dns: [v1.1.4 → v1.0.14](https://github.com/miekg/dns/compare/v1.1.4...v1.0.14) -- github.com/mistifyio/go-zfs: [v2.1.1+incompatible → f784269](https://github.com/mistifyio/go-zfs/compare/v2.1.1...f784269) -- github.com/mrunalp/fileutils: [7d4729f → v0.5.0](https://github.com/mrunalp/fileutils/compare/7d4729f...v0.5.0) -- github.com/mwitkow/go-conntrack: [cc309e4 → 2f06839](https://github.com/mwitkow/go-conntrack/compare/cc309e4...2f06839) -- github.com/olekukonko/tablewriter: [a0225b3 → v0.0.4](https://github.com/olekukonko/tablewriter/compare/a0225b3...v0.0.4) -- github.com/onsi/ginkgo: [v1.11.0 → v1.14.2](https://github.com/onsi/ginkgo/compare/v1.11.0...v1.14.2) -- github.com/onsi/gomega: [v1.7.1 → v1.10.4](https://github.com/onsi/gomega/compare/v1.7.1...v1.10.4) -- github.com/opencontainers/go-digest: [v1.0.0-rc1 → v1.0.0](https://github.com/opencontainers/go-digest/compare/v1.0.0-rc1...v1.0.0) -- github.com/opencontainers/runc: [v1.0.0-rc10 → v1.0.1](https://github.com/opencontainers/runc/compare/v1.0.0-rc10...v1.0.1) -- github.com/opencontainers/runtime-spec: [v1.0.0 → 1c3f411](https://github.com/opencontainers/runtime-spec/compare/v1.0.0...1c3f411) -- github.com/opencontainers/selinux: [5215b18 → v1.8.2](https://github.com/opencontainers/selinux/compare/5215b18...v1.8.2) -- github.com/prometheus/client_golang: [v1.0.0 → v1.11.0](https://github.com/prometheus/client_golang/compare/v1.0.0...v1.11.0) -- github.com/prometheus/common: [v0.4.1 → v0.26.0](https://github.com/prometheus/common/compare/v0.4.1...v0.26.0) -- github.com/prometheus/procfs: [v0.0.8 → v0.6.0](https://github.com/prometheus/procfs/compare/v0.0.8...v0.6.0) -- github.com/quobyte/api: [v0.1.2 → v0.1.8](https://github.com/quobyte/api/compare/v0.1.2...v0.1.8) -- github.com/rogpeppe/fastuuid: [6724a57 → v1.2.0](https://github.com/rogpeppe/fastuuid/compare/6724a57...v1.2.0) -- github.com/rubiojr/go-vhd: [0bfd3b3 → 02e2102](https://github.com/rubiojr/go-vhd/compare/0bfd3b3...02e2102) -- github.com/satori/go.uuid: [v1.2.0 → 0aa62d5](https://github.com/satori/go.uuid/compare/v1.2.0...0aa62d5) -- github.com/sergi/go-diff: [v1.0.0 → v1.1.0](https://github.com/sergi/go-diff/compare/v1.0.0...v1.1.0) -- github.com/sirupsen/logrus: [v1.4.2 → v1.8.1](https://github.com/sirupsen/logrus/compare/v1.4.2...v1.8.1) -- github.com/smartystreets/assertions: [b2de0cb → v1.1.0](https://github.com/smartystreets/assertions/compare/b2de0cb...v1.1.0) -- github.com/soheilhy/cmux: [v0.1.4 → v0.1.5](https://github.com/soheilhy/cmux/compare/v0.1.4...v0.1.5) -- github.com/spf13/cobra: [v0.0.5 → v1.1.3](https://github.com/spf13/cobra/compare/v0.0.5...v1.1.3) -- github.com/spf13/jwalterweatherman: [v1.1.0 → v1.0.0](https://github.com/spf13/jwalterweatherman/compare/v1.1.0...v1.0.0) -- github.com/spf13/viper: [v1.3.2 → v1.7.0](https://github.com/spf13/viper/compare/v1.3.2...v1.7.0) -- github.com/storageos/go-api: [343b3ef → v2.2.0+incompatible](https://github.com/storageos/go-api/compare/343b3ef...v2.2.0) -- github.com/stretchr/testify: [v1.6.1 → v1.7.0](https://github.com/stretchr/testify/compare/v1.6.1...v1.7.0) -- github.com/syndtr/gocapability: [d983527 → 42c35b4](https://github.com/syndtr/gocapability/compare/d983527...42c35b4) -- github.com/tmc/grpc-websocket-proxy: [89b8d40 → e5319fd](https://github.com/tmc/grpc-websocket-proxy/compare/89b8d40...e5319fd) -- github.com/ugorji/go: [v1.1.1 → v1.1.4](https://github.com/ugorji/go/compare/v1.1.1...v1.1.4) -- github.com/urfave/cli: [v1.20.0 → v1.22.2](https://github.com/urfave/cli/compare/v1.20.0...v1.22.2) -- github.com/vishvananda/netlink: [v1.0.0 → v1.1.0](https://github.com/vishvananda/netlink/compare/v1.0.0...v1.1.0) -- github.com/vishvananda/netns: [be1fbed → db3c7e5](https://github.com/vishvananda/netns/compare/be1fbed...db3c7e5) -- github.com/yuin/goldmark: [v1.2.1 → v1.3.5](https://github.com/yuin/goldmark/compare/v1.2.1...v1.3.5) -- go.etcd.io/bbolt: v1.3.3 → v1.3.6 -- go.etcd.io/etcd: 3cf2f69 → 83304cf -- go.uber.org/atomic: v1.3.2 → v1.7.0 -- go.uber.org/multierr: v1.1.0 → v1.6.0 -- go.uber.org/zap: v1.10.0 → v1.17.0 -- golang.org/x/crypto: 75b2880 → 5ea612d -- golang.org/x/exp: 6cc2880 → 85be41e -- golang.org/x/lint: 738671d → 6edffad -- golang.org/x/mobile: d2bd2a2 → e6ae53a -- golang.org/x/mod: v0.3.0 → v0.4.2 -- golang.org/x/net: f585440 → 37e1c6a -- golang.org/x/sync: 6e8e738 → 036812b -- golang.org/x/sys: fdedc70 → 59db8d7 -- golang.org/x/text: v0.3.3 → v0.3.6 -- golang.org/x/time: 555d28b → 1f47c86 -- golang.org/x/tools: 39188db → v0.1.2 -- google.golang.org/genproto: 0bd0a95 → f16073e -- google.golang.org/grpc: v1.31.1 → v1.38.0 -- google.golang.org/protobuf: v1.25.0 → v1.26.0 -- gopkg.in/check.v1: 41f04d3 → 8fa4692 -- gopkg.in/yaml.v2: v2.2.8 → v2.4.0 -- gopkg.in/yaml.v3: 9f266ea → 496545a -- k8s.io/api: v0.18.0 → v0.22.0 -- k8s.io/apiextensions-apiserver: v0.18.0 → v0.22.0 -- k8s.io/apimachinery: v0.18.0 → v0.22.0 -- k8s.io/apiserver: v0.18.0 → v0.22.0 -- k8s.io/cli-runtime: v0.18.0 → v0.22.0 -- k8s.io/client-go: v0.18.0 → v0.22.0 -- k8s.io/cloud-provider: v0.18.0 → v0.22.0 -- k8s.io/cluster-bootstrap: v0.18.0 → v0.22.0 -- k8s.io/code-generator: v0.18.0 → v0.22.0 -- k8s.io/component-base: v0.18.0 → v0.22.0 -- k8s.io/cri-api: v0.18.0 → v0.22.0 -- k8s.io/csi-translation-lib: v0.18.0 → v0.22.0 -- k8s.io/gengo: 36b2048 → b6c5ce2 -- k8s.io/klog/v2: v2.4.0 → v2.9.0 -- k8s.io/kube-aggregator: v0.18.0 → v0.22.0 -- k8s.io/kube-controller-manager: v0.18.0 → v0.22.0 -- k8s.io/kube-openapi: bf4fb3b → 9528897 -- k8s.io/kube-proxy: v0.18.0 → v0.22.0 -- k8s.io/kube-scheduler: v0.18.0 → v0.22.0 -- k8s.io/kubectl: v0.18.0 → v0.22.0 -- k8s.io/kubelet: v0.18.0 → v0.22.0 -- k8s.io/kubernetes: v1.18.0 → v1.22.0 -- k8s.io/legacy-cloud-providers: v0.18.0 → v0.22.0 -- k8s.io/metrics: v0.18.0 → v0.22.0 -- k8s.io/mount-utils: v0.20.6 → v0.22.0 -- k8s.io/sample-apiserver: v0.18.0 → v0.22.0 -- k8s.io/system-validators: v1.0.4 → v1.5.0 -- k8s.io/utils: 67b214c → 4b05e18 -- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.7 → v0.0.22 - -### Removed -- github.com/OpenPeeDeeP/depguard: [v1.0.1](https://github.com/OpenPeeDeeP/depguard/tree/v1.0.1) -- github.com/Rican7/retry: [v0.1.0](https://github.com/Rican7/retry/tree/v0.1.0) -- github.com/StackExchange/wmi: [5d04971](https://github.com/StackExchange/wmi/tree/5d04971) -- github.com/agnivade/levenshtein: [v1.0.1](https://github.com/agnivade/levenshtein/tree/v1.0.1) -- github.com/andreyvit/diff: [c7f18ee](https://github.com/andreyvit/diff/tree/c7f18ee) -- github.com/anmitsu/go-shlex: [648efa6](https://github.com/anmitsu/go-shlex/tree/648efa6) -- github.com/bazelbuild/bazel-gazelle: [70208cb](https://github.com/bazelbuild/bazel-gazelle/tree/70208cb) -- github.com/bazelbuild/rules_go: [6dae44d](https://github.com/bazelbuild/rules_go/tree/6dae44d) -- github.com/bifurcation/mint: [93c51c6](https://github.com/bifurcation/mint/tree/93c51c6) -- github.com/bradfitz/go-smtpd: [deb6d62](https://github.com/bradfitz/go-smtpd/tree/deb6d62) -- github.com/caddyserver/caddy: [v1.0.3](https://github.com/caddyserver/caddy/tree/v1.0.3) -- github.com/cenkalti/backoff: [v2.1.1+incompatible](https://github.com/cenkalti/backoff/tree/v2.1.1) -- github.com/cespare/prettybench: [03b8cfe](https://github.com/cespare/prettybench/tree/03b8cfe) -- github.com/checkpoint-restore/go-criu: [17b0214](https://github.com/checkpoint-restore/go-criu/tree/17b0214) -- github.com/cheekybits/genny: [9127e81](https://github.com/cheekybits/genny/tree/9127e81) -- github.com/codegangsta/negroni: [v1.0.0](https://github.com/codegangsta/negroni/tree/v1.0.0) -- github.com/docker/libnetwork: [c8a5fca](https://github.com/docker/libnetwork/tree/c8a5fca) -- github.com/docker/spdystream: [449fdfc](https://github.com/docker/spdystream/tree/449fdfc) -- github.com/gliderlabs/ssh: [v0.1.1](https://github.com/gliderlabs/ssh/tree/v0.1.1) -- github.com/globalsign/mgo: [eeefdec](https://github.com/globalsign/mgo/tree/eeefdec) -- github.com/go-acme/lego: [v2.5.0+incompatible](https://github.com/go-acme/lego/tree/v2.5.0) -- github.com/go-bindata/go-bindata: [v3.1.1+incompatible](https://github.com/go-bindata/go-bindata/tree/v3.1.1) -- github.com/go-critic/go-critic: [1df3008](https://github.com/go-critic/go-critic/tree/1df3008) -- github.com/go-lintpack/lintpack: [v0.5.2](https://github.com/go-lintpack/lintpack/tree/v0.5.2) -- github.com/go-ole/go-ole: [v1.2.1](https://github.com/go-ole/go-ole/tree/v1.2.1) -- github.com/go-openapi/analysis: [v0.19.5](https://github.com/go-openapi/analysis/tree/v0.19.5) -- github.com/go-openapi/errors: [v0.19.2](https://github.com/go-openapi/errors/tree/v0.19.2) -- github.com/go-openapi/loads: [v0.19.4](https://github.com/go-openapi/loads/tree/v0.19.4) -- github.com/go-openapi/runtime: [v0.19.4](https://github.com/go-openapi/runtime/tree/v0.19.4) -- github.com/go-openapi/strfmt: [v0.19.3](https://github.com/go-openapi/strfmt/tree/v0.19.3) -- github.com/go-openapi/validate: [v0.19.5](https://github.com/go-openapi/validate/tree/v0.19.5) -- github.com/go-toolsmith/astcast: [v1.0.0](https://github.com/go-toolsmith/astcast/tree/v1.0.0) -- github.com/go-toolsmith/astcopy: [v1.0.0](https://github.com/go-toolsmith/astcopy/tree/v1.0.0) -- github.com/go-toolsmith/astequal: [v1.0.0](https://github.com/go-toolsmith/astequal/tree/v1.0.0) -- github.com/go-toolsmith/astfmt: [v1.0.0](https://github.com/go-toolsmith/astfmt/tree/v1.0.0) -- github.com/go-toolsmith/astinfo: [9809ff7](https://github.com/go-toolsmith/astinfo/tree/9809ff7) -- github.com/go-toolsmith/astp: [v1.0.0](https://github.com/go-toolsmith/astp/tree/v1.0.0) -- github.com/go-toolsmith/pkgload: [v1.0.0](https://github.com/go-toolsmith/pkgload/tree/v1.0.0) -- github.com/go-toolsmith/strparse: [v1.0.0](https://github.com/go-toolsmith/strparse/tree/v1.0.0) -- github.com/go-toolsmith/typep: [v1.0.0](https://github.com/go-toolsmith/typep/tree/v1.0.0) -- github.com/gobwas/glob: [v0.2.3](https://github.com/gobwas/glob/tree/v0.2.3) -- github.com/godbus/dbus: [2ff6f7f](https://github.com/godbus/dbus/tree/2ff6f7f) -- github.com/golangci/check: [cfe4005](https://github.com/golangci/check/tree/cfe4005) -- github.com/golangci/dupl: [3e9179a](https://github.com/golangci/dupl/tree/3e9179a) -- github.com/golangci/errcheck: [ef45e06](https://github.com/golangci/errcheck/tree/ef45e06) -- github.com/golangci/go-misc: [927a3d8](https://github.com/golangci/go-misc/tree/927a3d8) -- github.com/golangci/go-tools: [e32c541](https://github.com/golangci/go-tools/tree/e32c541) -- github.com/golangci/goconst: [041c5f2](https://github.com/golangci/goconst/tree/041c5f2) -- github.com/golangci/gocyclo: [2becd97](https://github.com/golangci/gocyclo/tree/2becd97) -- github.com/golangci/gofmt: [0b8337e](https://github.com/golangci/gofmt/tree/0b8337e) -- github.com/golangci/golangci-lint: [v1.18.0](https://github.com/golangci/golangci-lint/tree/v1.18.0) -- github.com/golangci/gosec: [66fb7fc](https://github.com/golangci/gosec/tree/66fb7fc) -- github.com/golangci/ineffassign: [42439a7](https://github.com/golangci/ineffassign/tree/42439a7) -- github.com/golangci/lint-1: [ee948d0](https://github.com/golangci/lint-1/tree/ee948d0) -- github.com/golangci/maligned: [b1d8939](https://github.com/golangci/maligned/tree/b1d8939) -- github.com/golangci/misspell: [950f5d1](https://github.com/golangci/misspell/tree/950f5d1) -- github.com/golangci/prealloc: [215b22d](https://github.com/golangci/prealloc/tree/215b22d) -- github.com/golangci/revgrep: [d9c87f5](https://github.com/golangci/revgrep/tree/d9c87f5) -- github.com/golangci/unconvert: [28b1c44](https://github.com/golangci/unconvert/tree/28b1c44) -- github.com/golangplus/bytes: [45c989f](https://github.com/golangplus/bytes/tree/45c989f) -- github.com/golangplus/fmt: [2a5d6d7](https://github.com/golangplus/fmt/tree/2a5d6d7) -- github.com/gostaticanalysis/analysisutil: [v0.0.3](https://github.com/gostaticanalysis/analysisutil/tree/v0.0.3) -- github.com/jellevandenhooff/dkim: [f50fe3d](https://github.com/jellevandenhooff/dkim/tree/f50fe3d) -- github.com/jimstudt/http-authentication: [3eca13d](https://github.com/jimstudt/http-authentication/tree/3eca13d) -- github.com/kubernetes-csi/csi-test/v3: [v3.0.0](https://github.com/kubernetes-csi/csi-test/v3/tree/v3.0.0) -- github.com/kylelemons/godebug: [d65d576](https://github.com/kylelemons/godebug/tree/d65d576) -- github.com/logrusorgru/aurora: [a7b3b31](https://github.com/logrusorgru/aurora/tree/a7b3b31) -- github.com/lucas-clemente/aes12: [cd47fb3](https://github.com/lucas-clemente/aes12/tree/cd47fb3) -- github.com/lucas-clemente/quic-clients: [v0.1.0](https://github.com/lucas-clemente/quic-clients/tree/v0.1.0) -- github.com/lucas-clemente/quic-go-certificates: [d2f8652](https://github.com/lucas-clemente/quic-go-certificates/tree/d2f8652) -- github.com/lucas-clemente/quic-go: [v0.10.2](https://github.com/lucas-clemente/quic-go/tree/v0.10.2) -- github.com/marten-seemann/qtls: [v0.2.3](https://github.com/marten-seemann/qtls/tree/v0.2.3) -- github.com/mattn/go-shellwords: [v1.0.5](https://github.com/mattn/go-shellwords/tree/v1.0.5) -- github.com/mattn/goveralls: [v0.0.2](https://github.com/mattn/goveralls/tree/v0.0.2) -- github.com/mesos/mesos-go: [v0.0.9](https://github.com/mesos/mesos-go/tree/v0.0.9) -- github.com/mholt/certmagic: [6a42ef9](https://github.com/mholt/certmagic/tree/6a42ef9) -- github.com/mitchellh/go-ps: [4fdf99a](https://github.com/mitchellh/go-ps/tree/4fdf99a) -- github.com/mozilla/tls-observatory: [8791a20](https://github.com/mozilla/tls-observatory/tree/8791a20) -- github.com/naoina/go-stringutil: [v0.1.0](https://github.com/naoina/go-stringutil/tree/v0.1.0) -- github.com/naoina/toml: [v0.1.1](https://github.com/naoina/toml/tree/v0.1.1) -- github.com/nbutton23/zxcvbn-go: [eafdab6](https://github.com/nbutton23/zxcvbn-go/tree/eafdab6) -- github.com/pborman/uuid: [v1.2.0](https://github.com/pborman/uuid/tree/v1.2.0) -- github.com/pquerna/ffjson: [af8b230](https://github.com/pquerna/ffjson/tree/af8b230) -- github.com/quasilyte/go-consistent: [c6f3937](https://github.com/quasilyte/go-consistent/tree/c6f3937) -- github.com/robfig/cron: [v1.1.0](https://github.com/robfig/cron/tree/v1.1.0) -- github.com/ryanuber/go-glob: [256dc44](https://github.com/ryanuber/go-glob/tree/256dc44) -- github.com/shirou/gopsutil: [c95755e](https://github.com/shirou/gopsutil/tree/c95755e) -- github.com/shirou/w32: [bb4de01](https://github.com/shirou/w32/tree/bb4de01) -- github.com/shurcooL/go-goon: [37c2f52](https://github.com/shurcooL/go-goon/tree/37c2f52) -- github.com/sourcegraph/go-diff: [v0.5.1](https://github.com/sourcegraph/go-diff/tree/v0.5.1) -- github.com/tarm/serial: [98f6abe](https://github.com/tarm/serial/tree/98f6abe) -- github.com/thecodeteam/goscaleio: [v0.1.0](https://github.com/thecodeteam/goscaleio/tree/v0.1.0) -- github.com/tidwall/pretty: [v1.0.0](https://github.com/tidwall/pretty/tree/v1.0.0) -- github.com/timakin/bodyclose: [87058b9](https://github.com/timakin/bodyclose/tree/87058b9) -- github.com/ultraware/funlen: [v0.0.2](https://github.com/ultraware/funlen/tree/v0.0.2) -- github.com/valyala/bytebufferpool: [v1.0.0](https://github.com/valyala/bytebufferpool/tree/v1.0.0) -- github.com/valyala/fasthttp: [v1.2.0](https://github.com/valyala/fasthttp/tree/v1.2.0) -- github.com/valyala/quicktemplate: [v1.1.1](https://github.com/valyala/quicktemplate/tree/v1.1.1) -- github.com/valyala/tcplisten: [ceec8f9](https://github.com/valyala/tcplisten/tree/ceec8f9) -- github.com/vektah/gqlparser: [v1.1.2](https://github.com/vektah/gqlparser/tree/v1.1.2) -- go.mongodb.org/mongo-driver: v1.1.2 -- go4.org: 417644f -- golang.org/x/build: 2835ba2 -- golang.org/x/perf: 6e6d33e -- gopkg.in/mcuadros/go-syslog.v2: v2.2.1 -- gotest.tools/gotestsum: v0.3.5 -- grpc.go4.org: 11d0a25 -- k8s.io/heapster: v1.2.0-beta.1 -- k8s.io/repo-infra: v0.0.1-alpha.1 -- mvdan.cc/interfacer: c200402 -- mvdan.cc/lint: adc824a -- mvdan.cc/unparam: fbb5962 -- sigs.k8s.io/kustomize: v2.0.3+incompatible -- sigs.k8s.io/structured-merge-diff/v3: v3.0.0 -- sourcegraph.com/sqs/pbtypes: d3ebe8f diff --git a/CHANGELOG/CHANGELOG-1.5.md b/CHANGELOG/CHANGELOG-1.5.md deleted file mode 100644 index f273ee4f4..000000000 --- a/CHANGELOG/CHANGELOG-1.5.md +++ /dev/null @@ -1,26 +0,0 @@ -# v1.5.0 - Changelog since v1.4.1 - -## Changes by Kind - -### Feature - -- Add parameters to VolumeSnapshotClass for disk image config. ([#926](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/926), [@luohao](https://github.com/luohao)) - -### Bug or Regression - -- Fix ControllerUnpublish backoff ([#953](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/953), [@saikat-royc](https://github.com/saikat-royc)) - -### Documentation - -- Adds documentation for how to use the PD CSI Driver overlays for testing and deploying the driver. ([#932](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/932), [@amacaskill](https://github.com/amacaskill)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -_Nothing has changed._ - -### Removed -- github.com/GoogleCloudPlatform/guest-configs: [a0dacef](https://github.com/GoogleCloudPlatform/guest-configs/tree/a0dacef) diff --git a/CHANGELOG/CHANGELOG-1.6.md b/CHANGELOG/CHANGELOG-1.6.md deleted file mode 100644 index a4fbee066..000000000 --- a/CHANGELOG/CHANGELOG-1.6.md +++ /dev/null @@ -1,29 +0,0 @@ -**Attention:** 1.6.0 is not a recommended version to use because of known issues where pods can get stuck (due to controller publish/unpublish failures) during cluster upgrades or during node reboot (as seen in [#987](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/987)). Users should upgrade directly to the 1.7 branch. - - -# v1.6.0 - Changelog since v1.5.1 - -## Changes by Kind - -### Feature - -- Allow to specify how frequently to poll for AttachDisk operation status, or any other global\regional\zonal operation. ([#956](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/956), [@sagor999](https://github.com/sagor999)) - -### Bug or Regression - -- Default to MAXPROCS=1 to improve memory usage on nodes with many CPUs. ([#969](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/969), [@mattcary](https://github.com/mattcary)) - -### Uncategorized - -- Lets users clone a regional disk from a zonal disk if one of the replica zones of the clone matches the zone of the source disk. ([#890](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/890), [@amacaskill](https://github.com/amacaskill)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -- github.com/prometheus/client_golang: [v1.11.0 → v1.11.1](https://github.com/prometheus/client_golang/compare/v1.11.0...v1.11.1) - -### Removed -_Nothing has changed._ diff --git a/CHANGELOG/CHANGELOG-1.7.md b/CHANGELOG/CHANGELOG-1.7.md deleted file mode 100644 index d3299edd9..000000000 --- a/CHANGELOG/CHANGELOG-1.7.md +++ /dev/null @@ -1,33 +0,0 @@ -# v1.7.0 - Changelog since v1.5.1 - ->**Attention:** 1.6.0 is not a recommended version to use because of known issues where pods can get stuck (due to controller publish/unpublish failures) during cluster upgrades or during node reboot (as seen in [#987](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/987)). Users should upgrade directly to the 1.7 branch. - -## Changes by Kind - -### Feature - -- Allow to specify how frequently to poll for AttachDisk operation status, or any other global\regional\zonal operation. ([#956](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/956), [@sagor999](https://github.com/sagor999)) - -### Bug or Regression - -- Default to MAXPROCS=1 to improve memory usage on nodes with many CPUs. ([#969](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/969), [@mattcary](https://github.com/mattcary)) -- Simplify node backoff logic for controller publish/unpublish op ([#988](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/988), [@saikat-royc](https://github.com/saikat-royc)) - -### Other (Cleanup or Flake) - -- Remove PodSecurityPolicy from deployment for 1.25+ clusters. ([#989](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/989), [@mattcary](https://github.com/mattcary)) - -### Uncategorized - -- Lets users clone a regional disk from a zonal disk if one of the replica zones of the clone matches the zone of the source disk. ([#890](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/pull/890), [@amacaskill](https://github.com/amacaskill)) - -## Dependencies - -### Added -_Nothing has changed._ - -### Changed -- github.com/prometheus/client_golang: [v1.11.0 → v1.11.1](https://github.com/prometheus/client_golang/compare/v1.11.0...v1.11.1) - -### Removed -_Nothing has changed._ diff --git a/CHANGELOG/README.md b/CHANGELOG/README.md index 54d5a2daa..7bbf81d3b 100644 --- a/CHANGELOG/README.md +++ b/CHANGELOG/README.md @@ -1,9 +1,3 @@ # CHANGELOGs -- [CHANGELOG v1.3.0](./CHANGELOG-1.4.md) -- [CHANGELOG v1.3.0](./CHANGELOG-1.3.md) -- [CHANGELOG v1.2.0](./CHANGELOG-1.2.md) -- [CHANGELOG v1.1.0](./CHANGELOG-1.1.md) -- [CHANGELOG v1.0.0](./CHANGELOG-1.0.md) -- [CHANGELOG v0.7.0](./CHANGELOG-0.7.md) -- [CHANGELOG v0.6.0](./CHANGELOG-0.6.md) +Please refer to [CHANGELOGs in master branch](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver/blob/master/CHANGELOG/CHANGELOG-1.7.md) diff --git a/Dockerfile b/Dockerfile index a6dbfb68b..78794b1d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ ARG BUILDPLATFORM -FROM --platform=$BUILDPLATFORM golang:1.17.8 as builder +FROM --platform=$BUILDPLATFORM golang:1.18.4 as builder ARG STAGINGVERSION ARG TARGETPLATFORM diff --git a/manifest_osversion.sh b/manifest_osversion.sh index 5c6c0cc40..4e16dcbf2 100755 --- a/manifest_osversion.sh +++ b/manifest_osversion.sh @@ -32,8 +32,8 @@ for ((i=0;i<${#imagetags[@]};++i)); do image_folder=$(echo "${IMAGETAG}" | sed "s|/|_|g" | sed "s/:/-/") echo ${manifest_folder} - sed -i -r "s/(\"os\"\:\"windows\")/\0,\"os.version\":$full_version/" \ - "${HOME}/.docker/manifests/${manifest_folder}/${image_folder}" + # sed -i -r "s/(\"os\"\:\"windows\")/\0,\"os.version\":$full_version/" \ + # "${HOME}/.docker/manifests/${manifest_folder}/${image_folder}" # manifest after transformations cat "${HOME}/.docker/manifests/${manifest_folder}/${image_folder}" diff --git a/pkg/gce-pd-csi-driver/controller.go b/pkg/gce-pd-csi-driver/controller.go index c65a9cec2..ca89c9aed 100644 --- a/pkg/gce-pd-csi-driver/controller.go +++ b/pkg/gce-pd-csi-driver/controller.go @@ -39,8 +39,8 @@ import ( ) const ( - nodeBackoffInitialDuration = 200 * time.Millisecond - nodeBackoffMaxDuration = 5 * time.Minute + errorBackoffInitialDuration = 200 * time.Millisecond + errorBackoffMaxDuration = 5 * time.Minute ) type GCEControllerServer struct { @@ -58,11 +58,46 @@ type GCEControllerServer struct { // Aborted error volumeLocks *common.VolumeLocks - // When the attacher sidecar issues controller publish/unpublish for multiple disks for a given node, the per-instance operation queue in GCE fills up causing attach/detach disk requests to immediately return with an error until the queue drains. nodeBackoff keeps track of any active backoff condition on a given node, and the time when retry of controller publish/unpublish is permissible. A node is marked with backoff when any error is encountered by the driver during controller publish/unpublish calls. - // If the controller eventually allows controller publish/publish requests for volumes (because the backoff time expired), and those requests fail, the next backoff retry time will be updated on every failure and capped at 'nodeBackoffMaxDuration'. Also, any successful controller publish/unpublish call will clear the backoff condition for the node. - nodeBackoff *flowcontrol.Backoff + // There are several kinds of errors that are immediately retried by either + // the CSI sidecars or the k8s control plane. The retries consume GCP api + // quota, eg by doing ListVolumes, and so backoff needs to be used to + // prevent quota exhaustion. + // + // Examples of these errors are the per-instance GCE operation queue getting + // full (typically only 32 operations in flight at a time are allowed), and + // disks being deleted out from under a PV causing unpublish errors. + // + // While we need to backoff, we also need some semblance of fairness. In + // particular, volume unpublish retries happen very quickly, and with + // a single backoff per node these retries can prevent any other operation + // from making progess, even if it would succeed. Hence we track errors on + // node and disk pairs, backing off only for calls matching such a + // pair. + // + // An implication is that in the full operation queue situation, requests + // for new disks will not backoff the first time. This is acceptible as a + // single spurious call will not cause problems for quota exhaustion or make + // the operation queue problem worse. This is well compensated by giving + // disks where no problems are ocurring a chance to be processed. + // + // errorBackoff keeps track of any active backoff condition on a given node, + // and the time when retry of controller publish/unpublish is permissible. A + // node and disk pair is marked with backoff when any error is encountered + // by the driver during controller publish/unpublish calls. If the + // controller eventually allows controller publish/publish requests for + // volumes (because the backoff time expired), and those requests fail, the + // next backoff retry time will be updated on every failure and capped at + // 'errorBackoffMaxDuration'. Also, any successful controller + // publish/unpublish call will clear the backoff condition for a node and + // disk. + errorBackoff *csiErrorBackoff } +type csiErrorBackoff struct { + backoff *flowcontrol.Backoff +} +type csiErrorBackoffId string + type workItem struct { ctx context.Context publishReq *csi.ControllerPublishVolumeRequest @@ -81,6 +116,13 @@ const ( replicationTypeNone = "none" replicationTypeRegionalPD = "regional-pd" + + // The maximum number of entries that we can include in the + // ListVolumesResposne + // In reality, the limit here is 4MB (based on gRPC client response limits), + // but 500 is a good proxy (gives ~8KB of data per ListVolumesResponse#Entry) + // See https://github.com/grpc/grpc/blob/master/include/grpc/impl/codegen/grpc_types.h#L503) + maxListVolumesResponseEntries = 500 ) func isDiskReady(disk *gce.CloudDisk) (bool, error) { @@ -369,17 +411,18 @@ func (gceCS *GCEControllerServer) ControllerPublishVolume(ctx context.Context, r return nil, err } - if gceCS.nodeBackoff.IsInBackOffSinceUpdate(req.NodeId, gceCS.nodeBackoff.Clock.Now()) { + backoffId := gceCS.errorBackoff.backoffId(req.NodeId, req.VolumeId) + if gceCS.errorBackoff.blocking(backoffId) { return nil, status.Errorf(codes.Unavailable, "ControllerPublish not permitted on node %q due to backoff condition", req.NodeId) } resp, err := gceCS.executeControllerPublishVolume(ctx, req) if err != nil { - klog.Infof("For node %s adding backoff due to error for volume %s", req.NodeId, req.VolumeId) - gceCS.nodeBackoff.Next(req.NodeId, gceCS.nodeBackoff.Clock.Now()) + klog.Infof("For node %s adding backoff due to error for volume %s: %v", req.NodeId, req.VolumeId, err) + gceCS.errorBackoff.next(backoffId) } else { klog.Infof("For node %s clear backoff due to successful publish of volume %v", req.NodeId, req.VolumeId) - gceCS.nodeBackoff.Reset(req.NodeId) + gceCS.errorBackoff.reset(backoffId) } return resp, err } @@ -506,17 +549,18 @@ func (gceCS *GCEControllerServer) ControllerUnpublishVolume(ctx context.Context, return nil, err } - if gceCS.nodeBackoff.IsInBackOffSinceUpdate(req.NodeId, gceCS.nodeBackoff.Clock.Now()) { + backoffId := gceCS.errorBackoff.backoffId(req.NodeId, req.VolumeId) + if gceCS.errorBackoff.blocking(backoffId) { return nil, status.Errorf(codes.Unavailable, "ControllerUnpublish not permitted on node %q due to backoff condition", req.NodeId) } resp, err := gceCS.executeControllerUnpublishVolume(ctx, req) if err != nil { klog.Infof("For node %s adding backoff due to error for volume %s", req.NodeId, req.VolumeId) - gceCS.nodeBackoff.Next(req.NodeId, gceCS.nodeBackoff.Clock.Now()) + gceCS.errorBackoff.next(backoffId) } else { klog.Infof("For node %s clear backoff due to successful unpublish of volume %v", req.NodeId, req.VolumeId) - gceCS.nodeBackoff.Reset(req.NodeId) + gceCS.errorBackoff.reset(backoffId) } return resp, err } @@ -708,7 +752,7 @@ func (gceCS *GCEControllerServer) ListVolumes(ctx context.Context, req *csi.List var maxEntries int = int(req.MaxEntries) if maxEntries == 0 { - maxEntries = len(gceCS.disks) + maxEntries = maxListVolumesResponseEntries } entries := []*csi.ListVolumesResponse_Entry{} @@ -1553,3 +1597,24 @@ func pickRandAndConsecutive(slice []string, n int) ([]string, error) { } return ret, nil } + +func newCsiErrorBackoff() *csiErrorBackoff { + return &csiErrorBackoff{flowcontrol.NewBackOff(errorBackoffInitialDuration, errorBackoffMaxDuration)} +} + +func (_ *csiErrorBackoff) backoffId(nodeId, volumeId string) csiErrorBackoffId { + return csiErrorBackoffId(fmt.Sprintf("%s:%s", nodeId, volumeId)) +} + +func (b *csiErrorBackoff) blocking(id csiErrorBackoffId) bool { + blk := b.backoff.IsInBackOffSinceUpdate(string(id), b.backoff.Clock.Now()) + return blk +} + +func (b *csiErrorBackoff) next(id csiErrorBackoffId) { + b.backoff.Next(string(id), b.backoff.Clock.Now()) +} + +func (b *csiErrorBackoff) reset(id csiErrorBackoffId) { + b.backoff.Reset(string(id)) +} diff --git a/pkg/gce-pd-csi-driver/controller_test.go b/pkg/gce-pd-csi-driver/controller_test.go index 649e32707..ecf2915b9 100644 --- a/pkg/gce-pd-csi-driver/controller_test.go +++ b/pkg/gce-pd-csi-driver/controller_test.go @@ -15,6 +15,7 @@ limitations under the License. package gceGCEDriver import ( + "context" "fmt" "math/rand" "reflect" @@ -25,8 +26,6 @@ import ( "github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta" "github.com/golang/protobuf/ptypes" - "context" - compute "google.golang.org/api/compute/v1" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -840,8 +839,79 @@ func TestCreateVolumeArguments(t *testing.T) { } } +func TestListVolumePagination(t *testing.T) { + testCases := []struct { + name string + diskCount int + maxEntries int32 + expectedEntries []int + }{ + { + name: "no pagination (implicit)", + diskCount: 325, + expectedEntries: []int{325}, + }, + { + name: "no pagination (explicit)", + diskCount: 2500, + maxEntries: 2500, + expectedEntries: []int{2500}, + }, + { + name: "pagination (implicit)", + diskCount: 1327, + expectedEntries: []int{500, 500, 327}, + }, + { + name: "pagination (explicit)", + diskCount: 723, + maxEntries: 200, + expectedEntries: []int{200, 200, 200, 123}, + }, + { + name: "pagination (explicit)", + diskCount: 3253, + maxEntries: 1000, + expectedEntries: []int{1000, 1000, 1000, 253}, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + // Setup new driver each time so no interference + var d []*gce.CloudDisk + for i := 0; i < tc.diskCount; i++ { + // Create diskCount dummy disks + d = append(d, gce.CloudDiskFromV1(&compute.Disk{Name: fmt.Sprintf("%v", i)})) + } + gceDriver := initGCEDriver(t, d) + tok := "" + for i, expectedEntry := range tc.expectedEntries { + lvr := &csi.ListVolumesRequest{ + MaxEntries: tc.maxEntries, + StartingToken: tok, + } + resp, err := gceDriver.cs.ListVolumes(context.TODO(), lvr) + if err != nil { + t.Fatalf("Got error %v", err) + return + } + + if len(resp.Entries) != expectedEntry { + t.Fatalf("Got %v entries, expected %v on call # %d", len(resp.Entries), expectedEntry, i+1) + } + + tok = resp.NextToken + } + if len(tok) != 0 { + t.Fatalf("Expected no more entries, but got NextToken in response: %s", tok) + } + }) + } +} + func TestListVolumeArgs(t *testing.T) { - diskCount := 600 + diskCount := 500 testCases := []struct { name string maxEntries int32 @@ -2079,18 +2149,24 @@ type backoffTesterConfig struct { mockMissingInstance bool // used by the backoff tester to mock a missing instance scenario } +func newFakeCsiErrorBackoff(tc *clock.FakeClock) *csiErrorBackoff { + return &csiErrorBackoff{flowcontrol.NewFakeBackOff(errorBackoffInitialDuration, errorBackoffMaxDuration, tc)} +} + func TestControllerUnpublishBackoff(t *testing.T) { + backoffTesterForUnpublish(t, &backoffTesterConfig{}) +} + +func TestControllerUnpublishBackoffMissingInstance(t *testing.T) { backoffTesterForUnpublish(t, &backoffTesterConfig{ mockMissingInstance: true, }) - backoffTesterForUnpublish(t, &backoffTesterConfig{}) } func backoffTesterForUnpublish(t *testing.T, config *backoffTesterConfig) { - readyToExecute := make(chan chan gce.Signal, 1) - disk1 := name + "1" + readyToExecute := make(chan chan gce.Signal) cloudDisks := []*gce.CloudDisk{ - createZonalCloudDisk(disk1), + createZonalCloudDisk(name), } fcp, err := gce.CreateFakeCloudProvider(project, zone, cloudDisks) if err != nil { @@ -2103,7 +2179,7 @@ func backoffTesterForUnpublish(t *testing.T, config *backoffTesterConfig) { instance := &compute.Instance{ Name: node, Disks: []*compute.AttachedDisk{ - {DeviceName: disk1}, // mock attached disks + {DeviceName: name}, // mock attached disks }, } if !config.mockMissingInstance { @@ -2117,43 +2193,62 @@ func backoffTesterForUnpublish(t *testing.T, config *backoffTesterConfig) { CloudProvider: fcpBlocking, seen: map[string]int{}, volumeLocks: common.NewVolumeLocks(), - nodeBackoff: flowcontrol.NewFakeBackOff(nodeBackoffInitialDuration, nodeBackoffMaxDuration, tc), + errorBackoff: newFakeCsiErrorBackoff(tc), } - key := testNodeID + backoffId := driver.cs.errorBackoff.backoffId(testNodeID, testVolumeID) step := 1 * time.Millisecond - // Mock an active backoff condition on the node. This will setup a backoff duration of the 'nodeBackoffInitialDuration'. - driver.cs.nodeBackoff.Next(key, tc.Now()) + + runUnpublishRequest := func(req *csi.ControllerUnpublishVolumeRequest, reportError bool) error { + response := make(chan error) + go func() { + _, err := driver.cs.ControllerUnpublishVolume(context.Background(), req) + response <- err + }() + go func() { + executeChan := <-readyToExecute + executeChan <- gcecloudprovider.Signal{ReportError: reportError} + }() + return <-response + } + + // Mock an active backoff condition on the node. + driver.cs.errorBackoff.next(backoffId) + + tc.Step(step) + // A requst for a a different volume should succeed. This volume is not + // mounted on the node, so no GCE call will be made (ie, runUnpublishRequest + // doesn't need to be called, the request can be called directly). + differentUnpubReq := &csi.ControllerUnpublishVolumeRequest{ + VolumeId: testVolumeID + "-different", + NodeId: testNodeID, + } + if _, err := driver.cs.ControllerUnpublishVolume(context.Background(), differentUnpubReq); err != nil { + t.Errorf("expected no error on different unpublish, got %v", err) + } + unpubreq := &csi.ControllerUnpublishVolumeRequest{ - VolumeId: testVolumeID + "1", + VolumeId: testVolumeID, NodeId: testNodeID, } // For the first 199 ms, the backoff condition is true. All controller publish request will be denied with 'Unavailable' error code. for i := 0; i < 199; i++ { - tc.Step(step) var err error _, err = driver.cs.ControllerUnpublishVolume(context.Background(), unpubreq) if !isUnavailableError(err) { t.Errorf("unexpected error %v", err) } + tc.Step(step) } - // Mock clock tick for the 200th millisecond. So backoff condition is no longer true. - tc.Step(step) - runUnpublishRequest := func(req *csi.ControllerUnpublishVolumeRequest) <-chan error { - response := make(chan error) - go func() { - _, err := driver.cs.ControllerUnpublishVolume(context.Background(), req) - response <- err - }() - return response - } - - // For a missing instance the driver should return a success code, and the node backoff condition should be cleared. + // At the 200th millisecond, the backoff condition is no longer true. The driver should return a success code, and the backoff condition should be cleared. if config.mockMissingInstance { _, err = driver.cs.ControllerUnpublishVolume(context.Background(), unpubreq) + if err != nil { + t.Errorf("unexpected error %v", err) + } // Driver is expected to remove the node key from the backoff map. - t1 := driver.cs.nodeBackoff.Get(key) + t1 := driver.cs.errorBackoff.backoff.Get(string(backoffId)) if t1 != 0 { t.Error("unexpected delay") } @@ -2161,12 +2256,7 @@ func backoffTesterForUnpublish(t *testing.T, config *backoffTesterConfig) { } // mock an error - var respUnpublish <-chan error - respUnpublish = runUnpublishRequest(unpubreq) - execute := <-readyToExecute - s1 := gcecloudprovider.Signal{ReportError: true} - execute <- s1 - if err := <-respUnpublish; err == nil { + if err := runUnpublishRequest(unpubreq, true); err == nil { t.Errorf("expected error") } @@ -2184,33 +2274,31 @@ func backoffTesterForUnpublish(t *testing.T, config *backoffTesterConfig) { // Mock clock tick for the 600th millisecond. So backoff condition is no longer true. tc.Step(step) // Now mock a successful ControllerUnpublish request, where DetachDisk call succeeds. - respUnpublish = runUnpublishRequest(unpubreq) - execute = <-readyToExecute - s1 = gcecloudprovider.Signal{} - execute <- s1 - if err := <-respUnpublish; err != nil { + if err := runUnpublishRequest(unpubreq, false); err != nil { t.Errorf("unexpected error") } // Driver is expected to remove the node key from the backoff map. - t1 := driver.cs.nodeBackoff.Get(key) + t1 := driver.cs.errorBackoff.backoff.Get(string(backoffId)) if t1 != 0 { t.Error("unexpected delay") } } func TestControllerPublishBackoff(t *testing.T) { + backoffTesterForPublish(t, &backoffTesterConfig{}) +} + +func TestControllerPublishBackoffMissingInstance(t *testing.T) { backoffTesterForPublish(t, &backoffTesterConfig{ mockMissingInstance: true, }) - backoffTesterForPublish(t, &backoffTesterConfig{}) } func backoffTesterForPublish(t *testing.T, config *backoffTesterConfig) { - readyToExecute := make(chan chan gce.Signal, 1) - disk1 := name + "1" + readyToExecute := make(chan chan gce.Signal) cloudDisks := []*gce.CloudDisk{ - createZonalCloudDisk(disk1), + createZonalCloudDisk(name), } fcp, err := gce.CreateFakeCloudProvider(project, zone, cloudDisks) if err != nil { @@ -2235,15 +2323,24 @@ func backoffTesterForPublish(t *testing.T, config *backoffTesterConfig) { CloudProvider: fcpBlocking, seen: map[string]int{}, volumeLocks: common.NewVolumeLocks(), - nodeBackoff: flowcontrol.NewFakeBackOff(nodeBackoffInitialDuration, nodeBackoffMaxDuration, tc), + errorBackoff: newFakeCsiErrorBackoff(tc), } - key := testNodeID + backoffId := driver.cs.errorBackoff.backoffId(testNodeID, testVolumeID) step := 1 * time.Millisecond - // Mock an active backoff condition on the node. This will setup a backoff duration of the 'nodeBackoffInitialDuration'. - driver.cs.nodeBackoff.Next(key, tc.Now()) + // Mock an active backoff condition on the node. + driver.cs.errorBackoff.next(backoffId) + + // A detach request for a different disk should succeed. As this disk is not + // on the instance, the detach will succeed without calling the gce detach + // disk api so we don't have to go through the blocking cloud provider and + // and make the request directly. + if _, err := driver.cs.ControllerUnpublishVolume(context.Background(), &csi.ControllerUnpublishVolumeRequest{VolumeId: testVolumeID + "different", NodeId: testNodeID}); err != nil { + t.Errorf("expected no error on different unpublish, got %v", err) + } + pubreq := &csi.ControllerPublishVolumeRequest{ - VolumeId: testVolumeID + "1", + VolumeId: testVolumeID, NodeId: testNodeID, VolumeCapability: &csi.VolumeCapability{ AccessType: &csi.VolumeCapability_Mount{ @@ -2266,23 +2363,27 @@ func backoffTesterForPublish(t *testing.T, config *backoffTesterConfig) { // Mock clock tick for the 200th millisecond. So backoff condition is no longer true. tc.Step(step) - runPublishRequest := func(req *csi.ControllerPublishVolumeRequest) <-chan error { + runPublishRequest := func(req *csi.ControllerPublishVolumeRequest, reportError bool) error { response := make(chan error) go func() { _, err := driver.cs.ControllerPublishVolume(context.Background(), req) response <- err }() - return response + go func() { + executeChan := <-readyToExecute + executeChan <- gcecloudprovider.Signal{ReportError: reportError} + }() + return <-response } - // For a missing instance the driver should return error code, and the node backoff condition should be set. + // For a missing instance the driver should return error code, and the backoff condition should be set. if config.mockMissingInstance { _, err = driver.cs.ControllerPublishVolume(context.Background(), pubreq) if err == nil { t.Errorf("unexpected error %v", err) } - t1 := driver.cs.nodeBackoff.Get(key) + t1 := driver.cs.errorBackoff.backoff.Get(string(backoffId)) if t1 == 0 { t.Error("expected delay, got none") } @@ -2290,12 +2391,7 @@ func backoffTesterForPublish(t *testing.T, config *backoffTesterConfig) { } // mock an error - var respPublish <-chan error - respPublish = runPublishRequest(pubreq) - execute := <-readyToExecute - s1 := gcecloudprovider.Signal{ReportError: true} - execute <- s1 - if err := <-respPublish; err == nil { + if err := runPublishRequest(pubreq, true); err == nil { t.Errorf("expected error") } @@ -2313,16 +2409,12 @@ func backoffTesterForPublish(t *testing.T, config *backoffTesterConfig) { // Mock clock tick for the 600th millisecond. So backoff condition is no longer true. tc.Step(step) // Now mock a successful ControllerUnpublish request, where DetachDisk call succeeds. - respPublish = runPublishRequest(pubreq) - execute = <-readyToExecute - s1 = gcecloudprovider.Signal{} - execute <- s1 - if err := <-respPublish; err != nil { + if err := runPublishRequest(pubreq, false); err != nil { t.Errorf("unexpected error") } // Driver is expected to remove the node key from the backoff map. - t1 := driver.cs.nodeBackoff.Get(key) + t1 := driver.cs.errorBackoff.backoff.Get(string(backoffId)) if t1 != 0 { t.Error("unexpected delay") } diff --git a/pkg/gce-pd-csi-driver/gce-pd-driver.go b/pkg/gce-pd-csi-driver/gce-pd-driver.go index 692c86ac0..473c7d424 100644 --- a/pkg/gce-pd-csi-driver/gce-pd-driver.go +++ b/pkg/gce-pd-csi-driver/gce-pd-driver.go @@ -20,7 +20,6 @@ import ( csi "github.com/container-storage-interface/spec/lib/go/csi" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "k8s.io/client-go/util/flowcontrol" "k8s.io/klog" "k8s.io/mount-utils" common "sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/pkg/common" @@ -155,8 +154,7 @@ func NewControllerServer(gceDriver *GCEDriver, cloudProvider gce.GCECompute) *GC CloudProvider: cloudProvider, seen: map[string]int{}, volumeLocks: common.NewVolumeLocks(), - // flowcontrol uses an exponential backoff policy with a factor of 2 - nodeBackoff: flowcontrol.NewBackOff(nodeBackoffInitialDuration, nodeBackoffMaxDuration), + errorBackoff: newCsiErrorBackoff(), } }