3.12.0 release notes
We are excited to announce another release of Ceph CSI, v3.12.0. This is another significant step towards using enhanced Container Storage Interface (CSI) features with Ceph Cluster in the backend. With this release, we are introducing many brand-new features and enhancements to the Ceph CSI driver. Here are the changelog/release highlights.
Changelog and Highlights:
Features
Deployment
- deploy: podSecurityContexts can be configured for ceph-csi-cephfs chart in PR.
- deploy: podSecurityContexts can be configured for ceph-csi-rbd chart in PR
- deploy: instanceID can be optionally configured for ceph-csi charts in PR
- deploy: radosNamespaceCephFS can be configured for ceph-csi-cephfs chart in PR
RBD
- rbd: add support for flattenMode option for replication in PR
CephFS
- cephfs: support omap data store in radosnamespace via cli argument in PR
Ceph distribution update
- build: update ceph release to squid in PR
- build: CentOS Stream 9 is used as OS in the container-images PR
What's Changed
CephFS
- cephfs: Add volumesnapshotclass for external-storage by @Madhu-1 in #4541
- cephfs: Avoid hanging lock in volume mutex lock by @Sunnatillo in #4725
- cephfs: close dir by @testwill in #4631
- cephfs: correct the id for cephfs locks by @NymanRobin in #4731
- cephfs: upgrade fscrypt version to fix concurrency issue by @NymanRobin in #4609
RBD
- Implement EncryptionKeyRotation spec by @black-dragon74 in #4690
- rbd: add backend support for VolumeGroup operations by @nixpanic in #4719
- rbd: add ParentInTrash parameter in rbdImage struct by @Rakshith-R in #4522
- rbd: add support for flattenMode option for replication by @Rakshith-R in #4678
- rbd: add VolumeGroup.ModifyVolumeGroupMembership CSI-Addons operation by @nixpanic in #4729
- rbd: add volume locks for reclaimspace operations by @iPraveenParihar in #4641
- rbd: base implementation for CSI-Addons VolumeGroup by @nixpanic in #4707
- rbd: implement CSI-Addons ControllerGetVolumeGroup operation by @nixpanic in #4733
- RBD: improvments to existing code to better align with volumegroup by @Madhu-1 in #4743
- rbd: make CreateVolumeGroup more idempotent by @nixpanic in #4730
- rbd: pre-work for VolumeGroup support by @nixpanic in #4701
- rbd: refactor mirroring to work with volume and volumegroup by @Madhu-1 in #4720
- rbd: remove topologyConstrainedPools parameter by @iPraveenParihar in #4499
- rbd: use internal as default error code in getGRPCError() by @Rakshith-R in #4671
- rbd: use ioctx locks for key rotation by @black-dragon74 in #4734
Continuous Integration and Testing
- ci: add more tests for cephfs external test by @Madhu-1 in #4568
- ci: add test for uncommitted changes in deploy directory by @Nikhil-Ladha in #4759
- ci: do not add the
ok-to-test
label if there is a conflict by @nixpanic in #4557 - ci: do not require Kubernetes 1.26 tests for the devel branch by @nixpanic in #4578
- ci: install ruby-devel in test container by @Madhu-1 in #4622
- ci: prevent breakage when including certain commands in the PR by @nixpanic in #4751
- ci: prevent incorrect pattern matching for
skipping ci
command by @nixpanic in #4754 - ci: remove feature gates by @Madhu-1 in #4766
- ci: remove k8s 1.30 tests check by @iPraveenParihar in #4647
- CI: remove used rules from mergify config file by @Madhu-1 in #4533
- ci: run snapshot tests and expand tests by @Madhu-1 in #4545
- ci: update centos stream 8 baseurl by @iPraveenParihar in #4658
- ci: Update golangci lint and helm version by @Madhu-1 in #4539
- ci: update PR-commenter and Mergify for Kubernertes 1.26/1.30 by @nixpanic in #4589
- ci: upgrade_version update by @karthik-us in #4537
- ci: use latest Fedora container-image by @nixpanic in #4745
- ci: Use temporary directory for unit tests by @mayankpall in #4626
- e2e: retry when a pod does not have a host assigned (yet) by @nixpanic in #4669
Deployment
- deploy: configurable podSecurityContexts in ceph-csi-cephfs chart by @1602077 in #4664
- deploy: configurable podSecurityContexts in ceph-csi-rbd by @1602077 in #4668
- deploy: setting RequiredDropCapabilities to ALL for ceph-csi scc by @ShravaniVangur in #4767
- helm: add cli argument instanceid by @zerotens in #4666
Documentation
- doc: add release note for flattenMode option by @Rakshith-R in #4737
- doc: inform users that the OS in the container-image is updated by @nixpanic in #4744
- doc: Remove podSecurityPolicy from helm docs by @black-dragon74 in #4746
- doc: reset PendingReleaseNotes.md to v3.12.0 by @Rakshith-R in #4670
- docs: proposal for providing PV key rotation by @black-dragon74 in #4655
- doc: update coding guideline to suggest to place local imports last by @nixpanic in #4721
- doc: update dev standup day to Monday by @Rakshith-R in #4696
- Fix the Slack invite link on the README by @tullis in #4621
- helm: fix typo in document by @Madhu-1 in #4718
Journaling
- journal: fix empty csiCreationTimeKey value by @iPraveenParihar in #4755
- journal: store CreationTime for VolumeGroups by @nixpanic in #4753
- journal: Update group journal to accomudate rbd group by @Madhu-1 in #4687
Build and Cleanups
- build: include MirrorDaemonCount in the ConfigMap API by @nixpanic in #4577
- build: prepare of 3.12.0 by @Madhu-1 in #4770
- build: prevent "Operation not supported" failures while extracting Golang in CI jobs by @nixpanic in #4584
- build: update ceph image and rook version by @Madhu-1 in #4736
- build: use Go 1.21.9 to include latest security fixes by @nixpanic in #4554
- build: use Go 1.22 by @nixpanic in #4593
- cleanup: client cert decoding is not required by @iPraveenParihar in #4558
- cleanup: destroy connections after .Copy() an other one by @nixpanic in #4524
- cleanup: incorrect fuserecovery logging by @iPraveenParihar in #4598
- cleanup: remove global CSIInstanceID and pass configured value instead by @nixpanic in #4747
- cleanup: rename EncryptionTypeString() to EncryptionType.String() by @nixpanic in #4525
Updates of dependencies
- csiaddons: update csi-addons spec by @Madhu-1 in #4692
- deploy: update CSI sidecar driver-registrar to v2.11.1 by @iPraveenParihar in #4717
- deploy: update CSI sidecars to latest versions available by @iPraveenParihar in #4573
- deploy: update CSI sidecars to latest versions available by @iPraveenParihar in #4660
- rebase: bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.5.1 to 1.6.0 by @dependabot in #4676
- rebase: bump github.com/ceph/go-ceph from 0.26.1-0.20240319113421-755481f8c243 to 0.27.0 by @dependabot in #4560
- rebase: bump github.com/ceph/go-ceph from 0.27.0 to 0.28.0 by @dependabot in #4685
- rebase: Bump github.com/container-storage-interface/spec from 1.9.0 to 1.10.0 by @dependabot in #4705
- rebase: bump github.com/hashicorp/go-retryablehttp from 0.7.1 to 0.7.7 by @dependabot in #4695
- rebase: bump golang.org/x/net from 0.19.0 to 0.23.0 in /api by @dependabot in #4572
- rebase: bump golang.org/x/sys from 0.22.0 to 0.23.0 in the golang-dependencies group by @dependabot in #4748
- rebase: bump google.golang.org/grpc from 1.62.1 to 1.63.2 by @dependabot in #4553
- rebase: bump google.golang.org/grpc from 1.63.2 to 1.64.0 by @dependabot in #4627
- rebase: Bump google.golang.org/grpc from 1.64.0 to 1.65.0 by @dependabot in #4704
- rebase: bump google.golang.org/protobuf from 1.33.0 to 1.34.1 by @dependabot in #4601
- rebase: bump google.golang.org/protobuf from 1.34.1 to 1.34.2 by @dependabot in #4684
- rebase: bump k8s.io/api from 0.29.3 to 0.30.1 in /api in the k8s-dependencies group across 1 directory by @dependabot in #4629
- rebase: bump k8s.io/api from 0.30.1 to 0.30.2 in /api in the k8s-dependencies group by @dependabot in #4682
- rebase: bump k8s.io/api from 0.30.2 to 0.30.3 in /api in the k8s-dependencies group by @dependabot in #4722
- rebase: bump k8s.io/klog/v2 from 2.130.0 to 2.130.1 in the k8s-dependencies group by @dependabot in #4693
- rebase: bump k8s.io/kubernetes from 1.30.2 to 1.30.3 in the k8s-dependencies group by @dependabot in #4723
- rebase: bump sigs.k8s.io/controller-runtime from 0.17.2 to 0.17.3 in the k8s-dependencies group by @dependabot in #4550
- rebase: bump sigs.k8s.io/controller-runtime from 0.17.3 to 0.18.2 in the k8s-dependencies group across 1 directory by @dependabot in #4614
- rebase: bump sigs.k8s.io/controller-runtime from 0.18.2 to 0.18.3 in the k8s-dependencies group across 1 directory by @dependabot in #4656
- rebase: bump sigs.k8s.io/controller-runtime from 0.18.3 to 0.18.4 in the k8s-dependencies group by @dependabot in #4673
- rebase: bump sigs.k8s.io/controller-runtime from 0.18.4 to 0.18.5 in the k8s-dependencies group by @dependabot in #4757
- rebase: bump the github-dependencies group across 1 directory with 9 updates by @dependabot in #4694
- rebase: Bump the github-dependencies group with 2 updates by @dependabot in #4703
- rebase: bump the github-dependencies group with 2 updates by @dependabot in #4711
- rebase: bump the github-dependencies group with 2 updates by @dependabot in #4724
- rebase: Bump the github-dependencies group with 3 updates by @dependabot in #4698
- rebase: bump the github-dependencies group with 3 updates by @dependabot in #4740
- rebase: bump the github-dependencies group with 3 updates by @dependabot in #4749
- rebase: bump the golang-dependencies group with 3 updates by @dependabot in #4549
- rebase: bump the golang-dependencies group with 3 updates by @dependabot in #4600
- rebase: bump the golang-dependencies group with 3 updates by @dependabot in #4672
- rebase: Bump the golang-dependencies group with 3 updates by @dependabot in #4702
- rebase: bump the golang-dependencies group with 3 updates by @dependabot in #4756
- rebase: bump the k8s-dependencies group with 2 updates by @dependabot in #4683
- rebase: update minikube to 1.33 by @Madhu-1 in #4606
- Set object lock for volumes for cephfs encryption by @Sunnatillo in #4697
- Support storing cephfs omap data store in radosnamespace via cli argument by @zerotens in #4652
- update readme and rules for 3.12.0 release by @Madhu-1 in #4765
- util: add support to configure mirror daemon count by @Madhu-1 in #4566
- util: exclude empty label values for crushlocation map by @iPraveenParihar in #4710
- util: Removing JoinError in favor of fmt.Errorf by @Thingee in #4608
- util: use slices package for contains by @Madhu-1 in #4532
New Contributors
- @tullis made their first contribution in #4621
- @Thingee made their first contribution in #4608
- @mayankpall made their first contribution in #4626
- @testwill made their first contribution in #4631
- @1602077 made their first contribution in #4664
- @zerotens made their first contribution in #4666
- @Sunnatillo made their first contribution in #4697
- @black-dragon74 made their first contribution in #4655
- @Nikhil-Ladha made their first contribution in #4759
- @ShravaniVangur made their first contribution in #4767
Full Changelog: v3.11.0...v3.12.0