# 3.11.0 release notes We are excited to announce another release of Ceph CSI, **v3.11.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 ### RBD * deploy: support for read affinity options per cluster by @iPraveenParihar in #4165 ### CephFS * cephfs: Add support to create RWX PVC from ROX PVC by @Madhu-1 in #4094 * cephfs: enable read affinity by @iPraveenParihar in #4153 * deploy: support for read affinity options per cluster by @iPraveenParihar in #4165 * cephfS: kernel and fuse mount options per cluster by @iPraveenParihar in #4245 ### NFS * nfs: add support for `clients` in the StorageClass by @spuiuk in #3895 ## Breaking Changes * Removed the deprecated grpc metrics flag's in #4225 * Support for pre-creation of cephFS subvolumegroup before creating subvolume is removed in #4195. Users will need to create the specified(or default `csi`) subvolumegroup before provisioning CephFS PVC on a new ceph. Refer to [deploy-cephfs.md](https://github.com/ceph/ceph-csi/blob/v3.10.0/docs/deploy-cephfs.md#cephfs-pvc-provisioning) for more details. ## Note: * Support is limited to only the active Ceph releases. Support for EOLed Ceph releases are removed [PR](https://github.com/ceph/ceph-csi/pull/4262) ## Enhancements * rbd: do not execute rbd sparsify when volume is in use by @Rakshith-R in #3985 * rbd: Dont depend on image state to issue resync by @Madhu-1 in #4076 * rebase: all the dependencies have been updated to latest available release. * cephfs: handle cephfs clone limit error by @karthik-us in #4276 * cephfs: remove snapshot protect/unprotect by @iPraveenParihar in #4202 * cephfs: Update fetchIP() to add support for IPv6 address by @riya-singhal31 in #4230 * helm: add option to enable read affinity for rbd by @iPraveenParihar in #4111 * helm: Allow templating of RBD striping parameters by @KingJ in #4229 * helm: add annotations for ceph-csi-rbd secret by @mustdiechik in #4248 * util: Remove deprecated grpc metrics code by @Madhu-1 in #4225 * util: include request-IDs in all gRPC calls for the Controller by @nixpanic in #4263 * deploy: allow mkfsOptions by @Sea-you in #4233 * deploy: update CSI sidecars to latest versions available by @iPraveenParihar in #4132 * deploy: enable featuregate for volume expansion recovery by @iPraveenParihar in #4279 * deploy: API for CSI Config Struct by @iPraveenParihar in #4278 ## Bug Fixes * cephfs: Fix cephfs PVC sizing by @karthik-us in #4180 * cephfS: prevent hanging NodeGetVmolumeStats on `stat()` syscall when an MDS is slow by @nixpanic in #4200 * cephfs: remove subvolume during clone by @Madhu-1 in #4223 * cephfs: set Pool parameter to empty for Snapshot-backed volumes by @Rakshith-R in #4047 * cephfs: safeguard localClusterState struct from race conditions by @Rakshith-R in #4163 * rbd: do not try to run `resizefs` on an encrypted BlockMode volume by @nixpanic in #3958 * rbd: discard not found error from GetMetadata by @Madhu-1 in #4097 * rbd: update snap RbdImageName by @iPraveenParihar in #4152 * rbd: update snap RbdImageName in createSnapshot by @iPraveenParihar in #4156 ## E2E * e2e: add test for validation of fuseMountOptions and kernelMountOptions by @riya-singhal31 in #3970 * e2e: Fixing the TODO in createCephfsStorageClass by @karthik-us in #3995 * e2e: add timeout for pvc deletion in ephemeral e2e by @riya-singhal31 in #4058 * e2e: add option to enable read affinity for rbd by @iPraveenParihar in #4111 * e2e: add multiple labels to node by @Madhu-1 in #4224 ## CI * ci: run `tickgit` after merging a PR in the devel branch by @nixpanic in #4241 * ci: skip `./api/vendor` in codespell runs by @nixpanic in #4201 * ci: group golang.org/x/ under golang dependencies by @nixpanic in #4178 * ci: disable addons after cluster creation by @Madhu-1 in #4170 * ci: add CSI_UPGRADE_VERSION var to build.env by @Rakshith-R in #4008 * ci: use `podman` for simple GitHub workflows by @nixpanic in #4035 * mergify: add support for 3.9 backports by @Rakshith-R in #3936 * ci: run versioned k8s jobs only on selected branches by @nixpanic in #4061 * ci: exclude branches from the testing matrix for `ok-to-test` comments by @nixpanic in #4068 * ci: only add `/test ..` comment if the branch for the PR matches by @nixpanic in #4070 * ci: enable debug logs in kubelet by @Madhu-1 in #4074 * ci: use dependabot group feature by @Madhu-1 in #4087 * ci: add snyk for security scanning by @Madhu-1 in #4259 * ci: add snyk for container image by @Madhu-1 in #4261 * ci: add ci bot for auto assigning issue by @riya-singhal31 in #4275 * ci: update minikube to v1.32.0 by @nixpanic in #4284 * build: disable ceph-iscsi repository by @nixpanic in #3959 * build: disable ceph-iscsi repository for test-container builds too by @nixpanic in #3965 * build: make sure `nfs-utils` is installed by @nixpanic in #4243 ## Documentation * doc: remove `/retest all` command for Jenkins jobs by @nixpanic in #3957 * doc: update documentation for v3.8.1 release by @Rakshith-R in #4006 * doc: adding empty storageClassName in static pvc by @subhamkrai in #4010 * doc: fix helm doc of ceph-csi deployment by @astraw99 in #4036 * doc: Update cephcsi.go by @runzhliu in #4096 * doc: adding empty storageClassName in static pvc by @Rakshith-R in #4110 * doc: add design doc for RBD QoS by @Madhu-1 in #4089 * doc: Remove unwanted steps/details from upgrade doc by @Madhu-1 in #4123 * doc: remove storageclass details for shallow volume by @Madhu-1 in #4124 * doc:add reference to CSI snapshot deployment guide by @iPraveenParihar in #4119 * doc: remove unwanted steps from upgrade by @Madhu-1 in #4133 * doc: Clarify default values for mountOptions and mkfsOptions in storageclass example by @MaGaroo in #4197 * doc: add pending release notes by @Madhu-1 in #4222 * doc: remove use of `XXX` in example descriptions by @nixpanic in #4228 * doc: update release notes for grpc metrics by @Madhu-1 in #4237 * doc: modify README and upgrade docs for release v3.10.0 by @Rakshith-R in #4286 ## New Contributors * @nemcikjan made their first contribution in https://github.com/ceph/ceph-csi/pull/4302 * @sebhoss made their first contribution in https://github.com/ceph/ceph-csi/pull/4319 * @maximus13th made their first contribution in https://github.com/ceph/ceph-csi/pull/4363 * @switchboardOp made their first contribution in https://github.com/ceph/ceph-csi/pull/4405 * @mgfritch made their first contribution in https://github.com/ceph/ceph-csi/pull/4464 * @dragoangel made their first contribution in https://github.com/ceph/ceph-csi/pull/4475 * @muxuelanKK made their first contribution in https://github.com/ceph/ceph-csi/pull/4291 * @NymanRobin made their first contribution in https://github.com/ceph/ceph-csi/pull/4504 * @parth-gr made their first contribution in https://github.com/ceph/ceph-csi/pull/4459 **Full Changelog**: https://github.com/ceph/ceph-csi/compare/v3.10.2...v3.11.0 Thanks to the fantastic Ceph CSI community for this great release :+1: :tada: ## What's Changed * ci: update pr-commentor and mergify rules for v3.10 by @Rakshith-R in https://github.com/ceph/ceph-csi/pull/4293 * ci: allow Mergify to merge PRs that modify the mergify configuration by @nixpanic in https://github.com/ceph/ceph-csi/pull/4294 * ci: the release-v3.10 branch needs Kubernetes 1.28 jobs by @nixpanic in https://github.com/ceph/ceph-csi/pull/4295 * rebase: bump the github-dependencies group with 3 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4300 * ci: Change upgrade version by @karthik-us in https://github.com/ceph/ceph-csi/pull/4301 * helm: add default false value for --enable-read-affinity by @iPraveenParihar in https://github.com/ceph/ceph-csi/pull/4298 * ci: update Mergify config for automatic merging of backports to 3.10 by @nixpanic in https://github.com/ceph/ceph-csi/pull/4308 * added permission to get nodes for rbd by @nemcikjan in https://github.com/ceph/ceph-csi/pull/4302 * rebase: bump actions/stale from 8 to 9 by @dependabot in https://github.com/ceph/ceph-csi/pull/4313 * rebase: bump the github-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4314 * cephfs: fix network fencing admin id by @riya-singhal31 in https://github.com/ceph/ceph-csi/pull/4316 * deploy: use release repository for csi-resizer by @sebhoss in https://github.com/ceph/ceph-csi/pull/4319 * cephFS: fix fetchIP to support more formats by @riya-singhal31 in https://github.com/ceph/ceph-csi/pull/4321 * rebase: bump github/codeql-action from 2 to 3 by @dependabot in https://github.com/ceph/ceph-csi/pull/4322 * build: use Go 1.21.5 by @nixpanic in https://github.com/ceph/ceph-csi/pull/4332 * ci: Update the upgrade_version by @karthik-us in https://github.com/ceph/ceph-csi/pull/4338 * rebase: bump the golang-dependencies group with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4323 * deploy: added json field tags for csi config map by @iPraveenParihar in https://github.com/ceph/ceph-csi/pull/4329 * rebase: bump the k8s-dependencies group in /api with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4327 * rebase: bump go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc from 0.35.0 to 0.46.0 by @dependabot in https://github.com/ceph/ceph-csi/pull/4331 * rebase: bump github.com/ceph/go-ceph from 0.24.1-0.20231116190858-df112a417d31 to 0.25.0 by @dependabot in https://github.com/ceph/ceph-csi/pull/4325 * rebase: bump google.golang.org/protobuf from 1.31.0 to 1.32.0 by @dependabot in https://github.com/ceph/ceph-csi/pull/4348 * helm: align seLinuxMount option w/ deploy folder by @sebhoss in https://github.com/ceph/ceph-csi/pull/4346 * rebase: bump the github-dependencies group with 5 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4350 * deploy: update csi sidecars to latest versions by @riya-singhal31 in https://github.com/ceph/ceph-csi/pull/4352 * ci: update github actions for k8s-1.29 by @riya-singhal31 in https://github.com/ceph/ceph-csi/pull/4354 * rebase: bump google.golang.org/grpc from 1.59.0 to 1.60.1 by @dependabot in https://github.com/ceph/ceph-csi/pull/4344 * allow modify fsGroupPolicy for csidriver by @maximus13th in https://github.com/ceph/ceph-csi/pull/4363 * rebase: bump the github-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4367 * rebase: bump the golang-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4366 * rebase: bump golang.org/x/oauth2 from 0.15.0 to 0.16.0 in /actions/retest by @dependabot in https://github.com/ceph/ceph-csi/pull/4365 * cleanup: simplify `rbdGetDeviceList()` by @nixpanic in https://github.com/ceph/ceph-csi/pull/4364 * cephfs: make fsName as optional for static PVC by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/4372 * rebase: bump the k8s-dependencies group with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4373 * rebase: bump the github-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4374 * cephfs: do not run `modprobe` if support is compiled into the kernel by @nixpanic in https://github.com/ceph/ceph-csi/pull/4378 * doc: add Go API documentation index files for storage backends by @nixpanic in https://github.com/ceph/ceph-csi/pull/4377 * rebase: bump actions/dependency-review-action from 3 to 4 by @dependabot in https://github.com/ceph/ceph-csi/pull/4385 * rebase: bump peter-evans/create-or-update-comment from 3 to 4 by @dependabot in https://github.com/ceph/ceph-csi/pull/4399 * rebase: bump google.golang.org/grpc from 1.60.1 to 1.61.0 by @dependabot in https://github.com/ceph/ceph-csi/pull/4397 * rebase: bump the github-dependencies group with 5 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4398 * rebase: bump the k8s-dependencies group in /api with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4386 * doc: Update README.md with slack invite and channel links by @switchboardOp in https://github.com/ceph/ceph-csi/pull/4405 * rebase: bump the k8s-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4413 * rebase: bump the github-dependencies group with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4418 * journal: omap implementation for volumegroup by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/4415 * util: Add helper functions for GroupController by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/4417 * deploy: update CSI sidecars to latest versions available by @iPraveenParihar in https://github.com/ceph/ceph-csi/pull/4420 * rebase: bump the github-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4428 * rebase: bump golang.org/x/oauth2 from 0.16.0 to 0.17.0 in /actions/retest by @dependabot in https://github.com/ceph/ceph-csi/pull/4425 * util: log repication RequestID by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/4429 * ci: update the upgrade_version by @karthik-us in https://github.com/ceph/ceph-csi/pull/4424 * rebase: bump the golang-dependencies group with 3 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4426 * rebase: bump the k8s-dependencies group with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4427 * deploy: make the csi-*plugin containers the default for kubectl commands by @nixpanic in https://github.com/ceph/ceph-csi/pull/4434 * ci: update mergify rules for kubernetes 1.29 by @riya-singhal31 in https://github.com/ceph/ceph-csi/pull/4355 * ci: update install-snapshot script to deploy newer version of snapshotter by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/4438 * rbd: log sitestatuses and description by @yati1998 in https://github.com/ceph/ceph-csi/pull/4431 * rebase: update external-snapshotter client to v7 by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/4439 * rebase: bump the github-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4442 * rebase: bump github.com/ceph/go-ceph from 0.25.0 to 0.26.0 by @dependabot in https://github.com/ceph/ceph-csi/pull/4443 * rebase: bump google.golang.org/grpc from 1.61.0 to 1.61.1 by @dependabot in https://github.com/ceph/ceph-csi/pull/4444 * rebase: bump the k8s-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4440 * ci: update the mergify rule to exclude k8s 1.25 by @yati1998 in https://github.com/ceph/ceph-csi/pull/4452 * rebase: bump the k8s-dependencies group in /api with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4441 * rebase: use Helm client 3.14.1 for generating charts by @nixpanic in https://github.com/ceph/ceph-csi/pull/4450 * cephfs: template update to support VGS for cephfs by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/4448 * rebase: bump the golang-dependencies group with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4461 * rebase: bump the github-dependencies group with 2 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4462 * rebase: bump google.golang.org/grpc from 1.61.1 to 1.62.0 by @dependabot in https://github.com/ceph/ceph-csi/pull/4463 * fscrypt: create a new blank key sized according to the passphrase by @mgfritch in https://github.com/ceph/ceph-csi/pull/4464 * rebase: bump the golang-dependencies group with 4 updates by @dependabot in https://github.com/ceph/ceph-csi/pull/4479 * rebase: bump github.com/go-jose/go-jose/v3 from 3.0.1 to 3.0.3 by @dependabot in https://github.com/ceph/ceph-csi/pull/4481 * cleanup: use real version for k8s.io/pod-security-admission instead of v0.0.0 by @nixpanic in https://github.com/ceph/ceph-csi/pull/4483 * kms: refactor functions to accept a context parameter by @iPraveenParihar in https://github.com/ceph/ceph-csi/pull/4477 * rebase: bump golang.org/x/oauth2 from 0.17.0 to 0.18.0 in /actions/retest by @dependabot in https://github.com/ceph/ceph-csi/pull/4487 * rebase: bump the github-dependencies group in /api with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4473 * helm: Include seLinuxMount only if KubeVersion greater or equal of 1.25 by @dragoangel in https://github.com/ceph/ceph-csi/pull/4475 * rebase: bump google.golang.org/grpc from 1.62.0 to 1.62.1 by @dependabot in https://github.com/ceph/ceph-csi/pull/4485 * kms: added Azure Key Vault as a supported KMS by @iPraveenParihar in https://github.com/ceph/ceph-csi/pull/4455 * doc: Update capabilities readme to solve to open permissions in it by @dragoangel in https://github.com/ceph/ceph-csi/pull/4469 * api: add CSIProvisionerRBAC functions for the NFS-provisioner by @nixpanic in https://github.com/ceph/ceph-csi/pull/4395 * rebase: bump google.golang.org/protobuf from 1.31.0 to 1.33.0 in /actions/retest by @dependabot in https://github.com/ceph/ceph-csi/pull/4494 * cleanup: don't return an internal type from VolumeGroupJournal.Connect() by @nixpanic in https://github.com/ceph/ceph-csi/pull/4491 * e2e: address regression in NFS deployment by @nixpanic in https://github.com/ceph/ceph-csi/pull/4500 * support nbd on euler or arm by @muxuelanKK in https://github.com/ceph/ceph-csi/pull/4291 * cleanup: correct typo in `NewCSIVolumeroupJournal()` function by @nixpanic in https://github.com/ceph/ceph-csi/pull/4495 * cleanup: do not pass EncodingVersion to `GenerateVolID()` by @nixpanic in https://github.com/ceph/ceph-csi/pull/4498 * rbd: template update to support VGS by @iPraveenParihar in https://github.com/ceph/ceph-csi/pull/4505 * rebase: bump the k8s-dependencies group with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4506 * rebase: bump the k8s-dependencies group in /api with 1 update by @dependabot in https://github.com/ceph/ceph-csi/pull/4508 * cephfs: Implement VolumeGroupSnapshot API's by @Madhu-1 in https://github.com/ceph/ceph-csi/pull/4436 * helm: CSIDriver add labels and seLinuxMount disabling method by @mustdiechik in https://github.com/ceph/ceph-csi/pull/4512 * cephfs: add support for encryption in ceph-csi-cephfs chart by @NymanRobin in https://github.com/ceph/ceph-csi/pull/4504 * rbd: make pool optional in rbd sc if topologyconstraints are present by @parth-gr in https://github.com/ceph/ceph-csi/pull/4459 * rbd: free snapshot resources after allocation by @nixpanic in https://github.com/ceph/ceph-csi/pull/4514 * helm: fix seLinuxMount option for csi driver object by @iPraveenParihar in https://github.com/ceph/ceph-csi/pull/4519 * cleanup: use standard Golang "slices" instead of k8s package by @nixpanic in https://github.com/ceph/ceph-csi/pull/4521 * doc: csi driver object options by @iPraveenParihar in https://github.com/ceph/ceph-csi/pull/4527 * doc & ci : modify README, upgrade docs and pr-commentor gh action for v3.11.0 by @Rakshith-R in https://github.com/ceph/ceph-csi/pull/4528 * deploy: update templates to v3.11.0 by @Rakshith-R in https://github.com/ceph/ceph-csi/pull/4535 ## New Contributors * @nemcikjan made their first contribution in https://github.com/ceph/ceph-csi/pull/4302 * @sebhoss made their first contribution in https://github.com/ceph/ceph-csi/pull/4319 * @maximus13th made their first contribution in https://github.com/ceph/ceph-csi/pull/4363 * @switchboardOp made their first contribution in https://github.com/ceph/ceph-csi/pull/4405 * @mgfritch made their first contribution in https://github.com/ceph/ceph-csi/pull/4464 * @dragoangel made their first contribution in https://github.com/ceph/ceph-csi/pull/4475 * @muxuelanKK made their first contribution in https://github.com/ceph/ceph-csi/pull/4291 * @NymanRobin made their first contribution in https://github.com/ceph/ceph-csi/pull/4504 * @parth-gr made their first contribution in https://github.com/ceph/ceph-csi/pull/4459 **Full Changelog**: https://github.com/ceph/ceph-csi/compare/v3.10.2...v3.11.0