-
Update CSI driver for Kubernetes 1.31
Update CSI sidecars to latest
Update Go to 1.23
Update other go.mod dependencies
Update VolumeSnapshot, VolumeSnapshotContent, and VolumeSnapshotClass CRDs to pull in CEL validation rules new in external-snapshotter v8 release
Remove VolumeSnapshot and VolumeSnapshotContent from the snapshot validating webhook configuration as those are now validated via CEL rules on their CRDs
-
Update github.com/docker/docker to address a vulnerability [GH-590]
- Make volumes-per-node limit configurable [GH-575]
- Handle new max-volumes-per-node error message [GH-573]
- Update CSI driver for Kubernetes 1.30 [GH-571]
- Update CSI sidecars to latest [GH-532]
- Update CSI driver for Kubernetes 1.28 [GH-528]
- Use godo action status for handling resize operation [GH-522]
- Update CSI driver for Kubernetes 1.27 [GH-486]
- Remove pre-stop driver unregistration [GH-487]
- Fix snapshot resizing [GH-490]
- Validate CreateVolume limits with forbidden error response [GH-481]
- CSI driver can accidentally format existing volume [GH-478]
- Update CSI sidecars to latest [GH-465]
- Update CSI driver for Kubernetes 1.25 [GH-461]
- Support setting DO API rate limit [GH-462]
- Upgrade Go to 1.19 [GH-463]
- Update CSI driver for Kubernetes 1.24 [GH-457]
- Add retain and XFS storage classes
- [GH-450]
- Upgrade sidecars and add RBAC rules for snapshot validation webhook [GH-444]
- Set storage size to minimum volume size [GH-441]
- Update CSI driver for Kubernetes 1.23 [GH-440]
- Guarantee that action IDs are logged [GH-433]
- Make volumes page size customizable [GH-431]
- Upgrade sidecars [GH-432]
- Remove unnecessary waitActionTimeout [GH-429]
- Update to use Go 1.17.7 [GH-426]
- Update Kubernetes dependency to 1.22.5 and add support for 1.22 e2e tests [GH-420]
- Support snapshots v1 [GH-397]
- Mark CSI driver as default container [GH-415]
- Update snapshot CRDs to v3.0.3 from upstream [GH-414]
- Update snapshot controller to v3.0.3 [GH-412]
- Update CSI spec to 1.5.0 [GH-411]
- Populate published node IDs in ListVolumesResponse [GH-410]
- Add snapshot validation webhook [GH-407]
- Update registrar sidecar to v2.4.0 [GH-408]
- Bump github.com/containerd/containerd from 1.5.2 to 1.5.8 [GH-402]
- Add xfsprogs-extra to csi-do-plugin container to support xfs grows [GH-405]
- Update Go to 1.17.2 [GH-398]
- Update sidecar dependencies [GH-396]
- Add Kubernetes 1.22 support [GH-395]
- Use k8s mount library to implement NodeUnpublishVolume [GH-393]
- Surface health check failures [GH-355]
- Update csi-provisioner to v2.0.2 and csi-snapshotter to v3.0.0 [GH-353]
- Run e2e tests for 1.19 [GH-349]
- Update Go to 1.15.2 [GH-344]
- Fix built-in release version [GH-342]
- Update Kubernetes dependency to 1.19.2 and sidecars to latest [GH-341]
- Add snapshot migration tool [GH-325]
- Update csi-resizer sidecar to v0.5.0 [GH-324]
- Support v1beta1 snapshots [GH-322]
- Upgrade Kubernetes dependencies to 1.18.3 [GH-318]
- Fix ListVolumes paging [GH-310]
- Upgrade Kubernetes dependencies to 1.17 [GH-307]
- Add initContainer to delete automount udev rule file [GH-305]
- Handle per-node volume limit exceeding error during ControllerPublishVolume [GH-303]
- Build using Go 1.14 [GH-302]
- Fix ListSnapshots paging [GH-300]
- Support filtering snapshots by ID [GH-299]
- Return minimum disk size field from snapshot response [GH-298]
- Improve debug HTTP server usage [GH-281]
- Update csi-snapshotter to v1.2.2 [GH-266]
- Support raw block volume mode [GH-249]
- Add support for running upstream storage end-to-end tests [GH-248]
- Include error details in failure to tag volumes [GH-245]
- Fix and improve logging [GH-244]
- Use WARN log level for non-critical failures to get an action [GH-241]
- Check all snapshots for existence [GH-240]
- Implement graceful shutdown [GH-238]
- Update sidecars [GH-236]
- Support checkLimit for multiple pages [GH-235]
- Log snapshot responses [GH-234]
- Return error when fetching the snapshot fails [GH-233]
- Refactor waitAction [GH-229]
- Assume detached state on 404 during ControllerUnpublishVolume [GH-221]
- Bump Kubernetes dependencies to 1.15 [GH-212]
- Add health check endpoint [GH-210]
- Implement NodeGetVolumeStats RPC [GH-197]
- Build using Go 1.13 [GH-194]
- Implement ControllerExpandVolume and NodeExpandVolume to resize volumes automatically [GH-193]
- Improve error messages for incorrectly attached volumes [GH-176] [GH-177]
- Allow for custom driver names, to help with upgrades from Kubernetes 1.11 [GH-179] [GH-182]
- Set a custom user agent for the godo client. [GH-156]
- Include
xfsprogs
in the base Docker image so that XFS can be used
IMPORTANT: This release is only compatible with Kubernetes v1.14.+
- Update CSI Spec to
v1.1.0
. This includes many new changes, make sure to read the Github PR for more information [GH-144] - Update csi-test library to
v2.0.0
. [GH-144] - Updated sidecars to the following versions: [GH-144]
quay.io/k8scsi/csi-provisioner:v1.1.0
quay.io/k8scsi/csi-attacher:v1.1.1
quay.io/k8scsi/csi-snapshotter:v1.1.0
quay.io/k8scsi/csi-node-driver-registrar:v1.1.0
- Deprecated
cluster-driver-registrar
sidecar. TheCSIDriver
CRD is now part of Kubernetes sincev1.14.0
[GH-144] - Added a new custom
CSIDriver
with the namedobs.csi.digitalocean.com
[GH-144] - Fix checking volume snapshot existency before proceeding creating a snapshot based volume [GH-144]
- Return proper error messages for unimplemented CSI methods [GH-154]
- Add tagging support for Volumes via the new
--do-tag
flag [GH-130] - Fix support for volume snapshots by setting snapshot id on volume creation [GH-129]
- Goreportcard fixes (typos, exported variables, etc..) [GH-121]
- Rename the cluster role bindings for the
node-driver-registrar
to be consistent with the other role bindings. [GH-118] - Remove the
--token
flag for thecsi-do-node
driver. Drivers running on the node don't need the token anymore. [GH-118] - Don't check the volume limits on the worker nodes (worker nodes are not able to talk to DigitalOcean API) [GH-142]
- Update
godo
(DigitalOcean API package) version to v1.13.0 [GH-143] - Fix race in snapshot integration test. [GH-146]
- Add tagging support for Volume snapshots via the new
--do-tag
flag [GH-145]
- Add support for CSI SPEC
v1.0.0
. This includes various new changes and additions in the driver and is intended to be used with Kubernetesv1.13+
[GH-113] - Add priorityClassName to controller and node plugin to prevent the CSI components from being evicted in favor of user workloads [GH-115]
- Cherry-pick: Add tagging support for Volumes via the new
--do-tag
flag [GH-130] - Cherry-pick: Fix support for volume snapshots by setting snapshot id on volume creation [GH-129]
- Cherry-pick: Goreportcard fixes (typos, exported variables, etc..) [GH-121]
- Cherry-pick: Rename the cluster role bindings for the
node-driver-registrar
to be consistent with the other role bindings. [GH-118] - Cherry-pick: Remove the
--token
flag for thecsi-do-node
driver. Drivers running on the node don't need the token anymore. [GH-118] - Cherry-pick: Don't check the volume limits on the worker nodes (worker nodes are not able to talk to DigitalOcean API) [GH-142]
- Cherry-pick: Update
godo
(DigitalOcean API package) version to v1.13.0 [GH-143] - Cherry-pick: Fix race in snapshot integration test. [GH-146]
- Cherry-pick: Add tagging support for Volume snapshots via the new
--do-tag
flag [GH-145]
- Add CSI Snapshots functionality [GH-103]
- Add csi-snapshotter sidecars and associated RBAC rules [GH-104]
- Add VolumeSnapshot CRD's to simplify the driver installation [GH-108]
- Revisit existing RBAC rules for the attacher, provisioner and driver-registrar. We no longer use the system cluster-role bindings as those will be deleted in v1.13 [GH-104]
- Fix inconsistent usage of the driver name [GH-100]
- Use publish_info in ControllerPublishVolume for storing and accessing the volume name on Node plugins. This allows us to do all Node related operations without relying on the DO API. [GH-99]
- Improve creating volumes by validating the storage size requirements stricter and returning more human friendly errors. [GH-101]
- Fix driver name in CSIDriver, StorageClass and GetNodeInfo() [GH-96]
- This release is intended to be used with Kubernetes
v1.12.x
and is not compatible with older versions of Kubernetes. The latest CSI changes in v1.12.x are not compatible with older version unfortunately, therefore going forward we will not support older version anymore. The requirements also has changed, please make sure to read the README.md to see what kubelet and kube-apiserver flags needs to be enabled. [GH-95] - Two new
CRD's
are installed:CSINodeInfo
andCSIDriver
to simplify node and driver discovery in Kubernetes. - Add a tutorial on how to re-use an existing volume. Also a new option is introduced to prevent formatting an existing volume. [GH-87]
- Handle case if a volume is already attached to a droplet [GH-87]
- Switch to Go modules for dependency management [GH-94]
- Add support to CSI Spec
v0.3.0
. This includes many new changes, make sure to read the Github PR for more information [GH-72] - Check volume limits before provisioning calls [GH-73]
- Rename resource (DaemonSet, StatefulSet, containers, etc..) names and combine the attacher and provisioner into a single Statefulset. [GH-74]
IMPORTANT:This release contains breaking changes, mainly about how thing
are deployed. The minimum Kubernetes version needs to be now v1.10.5.
To upgrade from a prior v0.1.x
versions please remove the old CSI plugin
completely and re-install the new one:
# delete old version, i.e: v0.1.5
kubectl delete -f https://raw.githubusercontent.com/digitalocean/csi-digitalocean/master/deploy/kubernetes/releases/csi-digitalocean-v0.1.5.yaml
# install v0.2.0
kubectl apply -f https://raw.githubusercontent.com/digitalocean/csi-digitalocean/master/deploy/kubernetes/releases/csi-digitalocean-v0.2.0.yaml
- Makefile improvements. Please check the GH link for more information. [GH-66]
- Validate volume capabilities during volume creation. [GH-68]
- Add version information to logs [GH-65]
- Add logs to mount operations [GH-55]
- Remove description to allow users to reuse volumes that were created by the UI/API [GH-59]
- Handle edge cases from external action, such as Volume deletion via UI more gracefully. We're not very strict anymore in cases we don't need to be, but we're also returning a better error in cases we need to be. [GH-60]
- Fix attaching multiple volumes to a single pod [GH-61]
- Fix passing an empty source to
IsMounted()
function duringNodeUnpublish
. This would prevent a pod to be deleted successfully in case of a dettached volume, becauseNodeUnpublish
would never return success asIsMounted()
was failing. [GH-50]
- Check if mounts are propagated (
MountPropagation
is enabled on the host) in Node plugin to prevent silent failing. [GH-46] - Fix
IsMounted()
for bind mounts where it was returning false positives. [GH-46] - Log 422 errors for visibility in Controller publish/unpublish methods. [GH-38]
- Fix panicking on errors for nil response objects [GH-34]
- Add method names to each log entry [GH-22]
- Kubernetes deployment uses the
kube-system
namespace instead of the priordefault
namespace. Please make sure to delete and re-deploy the plugin. [GH-21] - Change secret name from
dotoken
todigitalocean
. Please make sure to update your keys (delete old secret and create new secret with namedigitalocean
). Checkout the README for instructions if needed. [GH-21] - Make DigitalOcean API configurable via the new
--url
flag [GH-27]
- First release with all important methods of the CSI spec implemented