- Added new option enableProvidedByTopology (#780)
- drop tests for kubernetes v1.28 (#796)
- prefer scheduling the csi controller on cloud nodes (#786)
This version was tested with Kubernetes 1.29 - 1.31. Furthermore, we dropped v1.28 support.
We have reverted a workaround for an upstream issue in the Kubernetes scheduler where nodes without the CSI Plugin (e.g. Robot servers) would still be considered for scheduling, but then creating and attaching the volume fails with no automatic reconciliation of the this error.
Due to variations in the CSI specification implementation, these changes disrupted Nomad clusters, requiring us to revert them. We are actively working on placing this workaround behind a feature flag, allowing Kubernetes users to bypass the upstream issue.
This affects you, if you have set the Helm value allowedTopologyCloudServer
in v2.10.0. If you are affected by the Kubernetes upstream issue, we will provide a fix in the next minor version v2.11.0.
Learn more about this in #400 and #771.
- reverted NodeGetInfo response as it breaks Nomad clusters (#776)
2.10.0 (2024-10-29)
- add support & tests for Kubernetes 1.31 (#721) (85035b9)
- allow arbitrary length API tokens (#724) (61c3a0e)
- allow passing mkfs format options via storage class parameters (#747) (4b9aa4e)
- change XFS default options to support older kernels (#747) (4b9aa4e)
- drop tests for Kubernetes 1.27 (#722) (d46a54b)
- force pods with volumes to be scheduled on Cloud servers (#743) (702fe01)
- fstype is directly passed to mkfs: mkfs.<fstype> (#749) (173bf2f)
- support for SELinux mount (#756) (719247e), closes #582
- Support SINGLE_NODE_MULTI_WRITER capability (#725) (cd53c23), closes #327
- swarm: removed workaround support for mock staging/unstaging (#746) (465ec21)
2.9.0 (2024-08-08)
2.8.0 (2024-06-24)
- chart: separate image name and tag (#616) (0300b14)
- k8s: drop Kubernetes 1.26 from tests (93fe229)
- k8s: test against Kubernetes 1.30 (93fe229)
- read HCLOUD_TOKEN from file (#617) (4e1cd9d)
2.7.1 (2024-06-13)
2.7.0 (2024-05-10)
- add support & tests for Kubernetes 1.29 (#560) (b620486)
- drop tests for kubernetes v1.25 (#559) (5d19ae8)
2.6.0 (2023-11-08)
2.5.1 (2023-09-29)
2.5.0 (2023-09-29)
- build with Go 1.21 (#503) (2a82c3b)
- k8s: add Helm Chart (#500) (c39b138)
- test against Kubernetes 1.28 and drop 1.24 (#491) (b331348)
2.4.0 (2023-08-25)
- add nomad installation docs (#467) (631b117)
- docker-swarm: configure builds for arm64 (#471) (2b9c067)
- upgrade to hcloud-go v2 (3622bcc)
- btrfs volumes can not be formatted (#421) (#424) (be3fbc9)
- improve handling of metadata service connectivity (#466) (8ffa5fe)
Affordable, sustainable & powerful! 🚀You can now get one of our Arm64 CAX servers to optimize your operations while minimizing your costs! Discover Ampere’s efficient and robust Arm64 architecture and be ready to get blown away with its performance. 😎
Learn more: https://www.hetzner.com/news/arm64-cloud
- fix(ci): correct image tag in generated k8s manifests by @samcday in #407
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v2.3.1...v2.3.2
Affordable, sustainable & powerful! 🚀You can now get one of our Arm64 CAX servers to optimize your operations while minimizing your costs! Discover Ampere’s efficient and robust Arm64 architecture and be ready to get blown away with its performance. 😎
Learn more: https://www.hetzner.com/news/arm64-cloud
- fix(ci): qemu binfmt wrappers during release by @samcday in #406
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v2.3.0...v2.3.1
Affordable, sustainable & powerful! 🚀You can now get one of our Arm64 CAX servers to optimize your operations while minimizing your costs! Discover Ampere’s efficient and robust Arm64 architecture and be ready to get blown away with its performance. 😎
Learn more: https://www.hetzner.com/news/arm64-cloud
- docs: Update README for v2.2.0 by @apricote in #388
- chore(ci): run e2e workflow on public workers by @samcday in #393
- Fix typo in Script: Remove quotes. by @guettli in #394
- Add volumeattachment script macos compatibility by @laurigates in #396
- Update README.md by @laurigates in #395
- Fix volumeattachment array by @laurigates in #397
- feat: new dev/test environment by @apricote in #401
- feat(goreleaser): produce OCI manifest images by @apricote in #402
- ci: fix goreleaser arguments by @apricote in #403
- feat: publish ARM container images by @apricote in #405
- @laurigates made their first contribution in #396
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v2.2.0...v2.3.0
- docs: Update README for v2.2.0 by @apricote in #388
- chore(ci): run e2e workflow on public workers by @samcday in #393
- Fix typo in Script: Remove quotes. by @guettli in #394
- Add volumeattachment script macos compatibility by @laurigates in #396
- Update README.md by @laurigates in #395
- Fix volumeattachment array by @laurigates in #397
- feat: new dev/test environment by @apricote in #401
- feat(goreleaser): produce OCI manifest images by @apricote in #402
- ci: fix goreleaser arguments by @apricote in #403
- @laurigates made their first contribution in #396
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v2.2.0...v2.3.0-rc.0
- feat(k8s): pull CSI sidecar images from registry.k8s.io #368 by @apricote in #371
- feat: add experimental Docker Swarm support by @s4ke in #376
- feat: use exponential backoff for action polling by @apricote in #380
- feat: add Grafana dashboard and ServiceMonitors by @apricote in #378
- feat: Separate server ID from location for controller by @NotTheEvilOne in #385
- docs: update README for v2.1.1 by @apricote in #367
- Relax volume integration test by @choffmeister in #366
- feat: set allow discards on luksOpen by @apricote in #370
- docs(v2): describe process to prepare VolumeAttachments by @apricote in #375
- deps: bump hcloud-go to 1.40.0 by @apricote in #379
- chore(deps): bump golang.org/x/net from 0.5.0 to 0.7.0 by @dependabot in #383
- ci(e2e): improve behaviour in spite of flakiness by @apricote in #386
- ci(e2e): fail fast on worker setup errors by @apricote in #387
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v2.1.1...v2.2.0
- Build the Docker image on any platform by @hakman in #309
- test: fix e2e suite for NixOS by @apricote in #338
- docs: document procedure to fix PVs broken with v2.0.0 by @apricote in #340
- docs: add missing link to script by @apricote in #341
- encrypted storageclass had the wrong names. reference to cryptsetup by @JustinGuese in #342
- fix(node): check for empty devicePath by @apricote in #344
- docs: describe how to activate debug logs by @apricote in #345
- refactor(skaffold): update manifests to match v2+ resources by @apricote in #348
- feat: test against Kubernetes v1.26 by @apricote in #350
- chore(deps): upgrade kubernetes-csi sidecars by @apricote in #351
- Update k8s sig-storage containers by @choffmeister in #354
- fix: Block volumes are formatted #349 by @apricote in #353
- Verify hcloud-csi.yml is up-to-date by @choffmeister in #356
- chore(e2e): update testdriver definition by @apricote in #360
- chore(deps): update golang.org/x/ dependencies by @apricote in #364
- chore(deps): upgrade go dependencies by @apricote in #365
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v2.1.0...v2.1.1
- fix: revert invalid topology changes #333 by @apricote in #335
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v2.0.1...v2.1.0
⚠️ This is a bugfix for #333, only update to this release if you are currently on v2.0.0
. Otherwise check out the issue to learn which version you should install/upgrade to.
- fix: invalid topology label on new volumes #333 by @apricote in #334
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v2.0.0...v2.0.1
🛑 Version v2.0.0 contains a known bug that affects newly created volumes. Please upgrade directly to v2.1.0
. Details are available in the issue #333.
1.6.0
. Please see the Upgrading section in the README for details on the required steps.
- Include more information in request logging by @samcday in #237
- e2e test workflow improvements by @samcday in #234
- driver: fix panic when server is not found. by @jrasell in #249
- Use our own runners in E2E tests by @LKaemmerling in #252
- Remove unneeded privileges from CSI sidecars by @samcday in #235
- Use hcloud API for volume filesystem formatting by @samcday in #238
- Kustomization support and manifest simplification by @samcday in #223
- fix docs: taints vs label by @jleni in #257
- Update hcloud-csi.yml by @sui77 in #242
- [1/???] Split deployment manifests by @samcday in #261
- [2/???] Rework RBAC to only apply to CSI Controller by @samcday in #262
- [3/???] Switch Controller to Deployment, plus other tweaks by @samcday in #263
- [4/???] Remove hcloud API calls from most Node code paths by @samcday in #264
- [5/???] Split the driver into controller + node binaries by @samcday in #266
- [6/???] Simplify node resize by @samcday in #267
- Rename secret for hcloud api token to
hcloud
by @LKaemmerling in #275 - [7/???] Remove HCLOUD_TOKEN from node DaemonSet by @samcday in #269
- [8/???] Remove Node Stage/Unstage capability by @samcday in #270
- Allow to configure the HCLOUD API Endpoint via Environment Variables. by @LKaemmerling in #277
- Add support for volume encryption with cryptsetup and LUKS by @choffmeister in #279
- Implement ListVolumes Call by @LKaemmerling in #292
- Add FSGroup to mount capabilities + update dependencies by @4ND3R50N in #296
- Updates Version Constraint by @mvhirsch in #291
- Update k8s support by @4ND3R50N in #298
- Add skaffold for local debugging + add "Local test setup" section to README.md by @4ND3R50N in #301
- ci: publish unstable docker image from main by @EternalDeiwos in #305
- Explicit docs: read+write API token is needed. by @guettli in #313
- StorageClass has cluster scope by @jlgeering in #317
- test: fix integration tests relying on specific byte amounts by @apricote in #322
- feat: test against Kubernetes v1.25 by @apricote in #321
- chore: upgrade all dependencies to latest version by @apricote in #326
- [enhancement] Use native kubernetes topology region label for volumes nodeAffinity by @maksim-paskal in #302
- fix: driver version not updated on tagged release by @apricote in #328
- docs: update README for v2.0.0 by @apricote in #329
- @jrasell made their first contribution in #249
- @jleni made their first contribution in #257
- @sui77 made their first contribution in #242
- @choffmeister made their first contribution in #279
- @4ND3R50N made their first contribution in #296
- @mvhirsch made their first contribution in #291
- @EternalDeiwos made their first contribution in #305
- @guettli made their first contribution in #311
- @jlgeering made their first contribution in #317
- @maksim-paskal made their first contribution in #302
Full Changelog: https://github.com/hetznercloud/csi-driver/compare/v1.6.0...v2.0.0
2ea4803 Add btrfs support 7719e45 Add exclude for blockstorage during resize (#211) 4a69641 Add k8s 1.22 to tests (#225) beb3783 Adjust stale bot to be more userfriendly (#217) 0de9bd9 CI improvements for speed and fork-friendliness. (#221) e07b392 Fix changelog generation 8cb0bfe Implement Instrumentation from hcloud-go (#227) c89c462 Increase default polling interval to 3 seconds. (#230) 11c9940 Make e2e workflow friendly to running on forks. (#214) 29893db Migrate Testsuite Setup to be in line with our CCM Testsuite (#219) 4ad4d69 Prepare release v1.6.0 (#231) cf4e7e4 Recognition of root servers (#195) c213244 Reduce default log verbosity to info level (#224) c74a95b Remove testing for k8s 1.18 as written in our Versioning policy. (#199) 8d1f531 Run e2e tests in parallel. (#215) da859e8 Simplify CSI socket handling (#222) 6164eaf Update README.md (#196) 140dad9 Update hcloud-go to v1.29.1 (#218) fb90575 Upgrade csi sidecars to latest versions. (#216) 54f573e Use Go 1.17 (#228) 5d2ac90 Use Goreleaser to publish changelog (#229)
- Update Go to 1.16
- Update csi driver container to alpine linux v3.13
- Update hcloud-go to 1.24.0
- Fix mounting idempotency issues
- Add correct deployment file for latest version
- Allow using the node name as node indicator instead of using the metadata service
- Allow to tune the log level using the
LOG_LEVEL
environment variable - Update k8s dependencies to v1.17.12
- Update Go to 1.15
- Update hcloud-go to 1.22.0
- Update csi driver container to alpine linux v3.12
- Note: As of this release all versions are end-to-end tested against the official Kubernetes testsuite, as a result a few smaller issues where fixed
- Allow mounting of Hetzner Cloud Volumes as raw block volumes.
- Add label (
app: hcloud-csi
) tohcloud-csi-controller-metrics
andhcloud-csi-node-metrics
- Update to hcloud-go 1.18.0
- Fix stuck volume terminating when the volume was already deleted
- Add correct deployment file for latest version
- Update
csi-attacher
sidecar to v2.2.0 - Update
csi-provisioner
sidecar to v1.6.0 - Update
csi-node-driver-registrar
sidecar to v1.3.0 - Add livenessProbe support
- Update Go to 1.14
- Reduce the amount of API calls from CSI driver
- Add option to configure the Action polling interval via
HCLOUD_POLLING_INTERVAL_SECONDS
- Add option to enable the debug mode via
HCLOUD_DEBUG
- Add missing RBAC rules required for newer k8s version
- Install
e2fsprogs-extra
for resizing - Add better error handling and validation for certain errors related to wrong API tokens
- Fix usage of
Aborted
error code, which leads to an increasing CPU usage
- Add missing RBAC rules required for newer k8s version
- Implement volume resizing
- Implement volume statistics
- Revert fix from v1.1.2 to retry attach/detach when server is locked
- Respect minimum volume size of 10 GB
- Detach volumes before deleting them
- Fix error handling for attaching/detaching volumes in case server is locked
- Improve logging
- Implement topology awareness (supporting nodes and volumes in different locations)
- Initial release