Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Support SINGLE_NODE_MULTI_WRITER capability #327

Closed
apricote opened this issue Nov 17, 2022 · 4 comments · Fixed by #725 or #723
Closed

feat: Support SINGLE_NODE_MULTI_WRITER capability #327

apricote opened this issue Nov 17, 2022 · 4 comments · Fixed by #725 or #723
Assignees
Labels
enhancement New feature or request pinned

Comments

@apricote
Copy link
Member

apricote commented Nov 17, 2022

CSI Spec v1.5.0 introduced a new Capability SINGLE_NODE_MULTI_WRITER, which specializes the SINGLE_NODE_WRITER volume access mode into the "sub"-access modes SINGLE_NODE_SINGLE_WRITER and SINGLE_NODE_MULTI_WRITER.

This was added because the existing spec was conflicting. We currently behave like SINGLE_NODE_MULTI_WRITER, so we should just use that in the code.

This requires upgrading all our sidecar containers.

We can also enable the Kubernetes E2E tests flag Feature:SELinuxMountReadWriteOncePod once we have implemented this.

@apricote apricote added the enhancement New feature or request label Nov 17, 2022
@github-actions
Copy link

This issue has been marked as stale because it has not had recent activity. The bot will close the issue if no further action occurs.

@github-actions github-actions bot added the Stale label Mar 30, 2023
@apricote apricote removed the Stale label Mar 30, 2023
@github-actions
Copy link

This issue has been marked as stale because it has not had recent activity. The bot will close the issue if no further action occurs.

@lukasmetzner
Copy link
Contributor

Controller service is not yet responding with the SINGLE_NODE_MULTI_WRITER capability. This needs to be added.

@lukasmetzner lukasmetzner reopened this Oct 2, 2024
lukasmetzner added a commit that referenced this issue Oct 4, 2024
See #327 

SINGLE_NODE_MULTI_WRITER needs to be in the response of the
ControllerGetCapabilities function to correctly integrate support for
SINGLE_NODE_MULTI_WRITER access modes.

This was missing from #725.
@lukasmetzner
Copy link
Contributor

Done with PR #732

lukasmetzner added a commit that referenced this issue Oct 10, 2024
See #327 

SINGLE_NODE_MULTI_WRITER needs to be in the response of the
ControllerGetCapabilities function to correctly integrate support for
SINGLE_NODE_MULTI_WRITER access modes.

This was missing from #725.
lukasmetzner pushed a commit that referenced this issue Oct 29, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.10.0](v2.9.0...v2.10.0)
(2024-10-29)


### Features

* add support & tests for Kubernetes 1.31
([#721](#721))
([85035b9](85035b9))
* allow arbitrary length API tokens
([#724](#724))
([61c3a0e](61c3a0e))
* allow passing mkfs format options via storage class parameters
([#747](#747))
([4b9aa4e](4b9aa4e))
* change XFS default options to support older kernels
([#747](#747))
([4b9aa4e](4b9aa4e))
* drop tests for Kubernetes 1.27
([#722](#722))
([d46a54b](d46a54b))
* force pods with volumes to be scheduled on Cloud servers
([#743](#743))
([702fe01](702fe01))
* fstype is directly passed to mkfs: mkfs.<fstype>
([#749](#749))
([173bf2f](173bf2f))
* support for SELinux mount
([#756](#756))
([719247e](719247e)),
closes [#582](#582)
* Support SINGLE_NODE_MULTI_WRITER capability
([#725](#725))
([cd53c23](cd53c23)),
closes [#327](#327)
* **swarm:** removed workaround support for mock staging/unstaging
([#746](#746))
([465ec21](465ec21))


### Bug Fixes

* do not log sensitive mount options
([#755](#755))
([0b6e860](0b6e860))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
lukasmetzner pushed a commit that referenced this issue Nov 11, 2024
🤖 I have created a release *beep* *boop*
---


##
[2.10.0](v2.9.0...v2.10.0)
(2024-10-29)


### Features

* add support & tests for Kubernetes 1.31
([#721](#721))
([85035b9](85035b9))
* allow arbitrary length API tokens
([#724](#724))
([61c3a0e](61c3a0e))
* allow passing mkfs format options via storage class parameters
([#747](#747))
([4b9aa4e](4b9aa4e))
* change XFS default options to support older kernels
([#747](#747))
([4b9aa4e](4b9aa4e))
* drop tests for Kubernetes 1.27
([#722](#722))
([d46a54b](d46a54b))
* force pods with volumes to be scheduled on Cloud servers
([#743](#743))
([702fe01](702fe01))
* fstype is directly passed to mkfs: mkfs.<fstype>
([#749](#749))
([173bf2f](173bf2f))
* support for SELinux mount
([#756](#756))
([719247e](719247e)),
closes [#582](#582)
* Support SINGLE_NODE_MULTI_WRITER capability
([#725](#725))
([cd53c23](cd53c23)),
closes [#327](#327)
* **swarm:** removed workaround support for mock staging/unstaging
([#746](#746))
([465ec21](465ec21))


### Bug Fixes

* do not log sensitive mount options
([#755](#755))
([0b6e860](0b6e860))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
lukasmetzner added a commit that referenced this issue Jan 20, 2025
According to
[KEP-2485](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode/README.md#csi-specification-changes-volume-capabilities),
if the csi-driver exposes the `SINGLE_NODE_MULTI_WRITER` capability,
then `ReadWriteOncePod` will map to the `SINGLE_NODE_SINGLE_WRITER`
volume capability, otherwise it will map to `SINGLE_NODE_WRITER`. Our
controller already responded with the `SINGLE_NODE_MULTI_WRITER`, but we
blocked `SINGLE_NODE_SINGLE_WRITER` in a validation step in the
`ControllerPublishVolume` method.

Additional reference:
-
https://kubernetes.io/blog/2021/09/13/read-write-once-pod-access-mode-alpha/#accept-new-csi-access-modes
- #327
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request pinned
Projects
None yet
2 participants