Clarification on CSI-Sanity Suite and CSI 1.6 Compliance

37 views
Skip to first unread message

Nadian Group

unread,
Nov 20, 2024, 10:03:15 AM11/20/24
to kubernetes-sig-storage

Hi Team,

I hope you're doing well. I had a few queries regarding the CSI-Sanity suite, which is designed to validate a CSI driver for compliance with the CSI specification.

While reviewing the test results, I noticed that some test suites were skipped. From my understanding, these suites are skipped because the driver has not advertised the corresponding capabilities in the responses of the NodeGetCapabilities or ControllerGetCapabilities methods.

This leads me to a key question:
What is the exact expectation for a CSI driver to be considered CSI 1.6 compliant?

  • Is it mandatory for all test suites to pass, ensuring no suites are skipped at all?
  • Or is it sufficient if only the tests that are applicable (based on the capabilities advertised by the driver) are executed and pass, while others can be skipped without affecting compliance?

It makes sense that any triggered tests must pass for compliance—if any of the executed tests fail, the driver is clearly non-compliant. However, I would like confirmation on whether skipping tests (due to unadvertised capabilities) still allows the driver to be compliant with the CSI 1.6 specification.

For context, I used the v5.0.0 release of the CSI-Sanity suite to test the CSI 1.6 compliance of the driver.

Looking forward to your inputs to clarify this further.

Best regards,
Adarsh

Nadian Group

unread,
Nov 21, 2024, 9:30:13 AM11/21/24
to kubernetes-sig-storage
Can I get some reply on this one?

Thanks

Xing Yang

unread,
Nov 21, 2024, 9:22:14 PM11/21/24
to Nadian Group, kubernetes-sig-storage
Hi Adarsh,

A CSI driver is supposed to pass tests for the capabilities it supports.  Otherwise, it won't pass the tests.  I hope this helps.

Thanks,
Xing




--
You received this message because you are subscribed to the Google Groups "kubernetes-sig-storage" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kubernetes-sig-st...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/kubernetes-sig-storage/ff94705c-e7c6-4d80-a6ec-04da0cdede1en%40googlegroups.com.

Nadian Group

unread,
Nov 22, 2024, 7:25:22 AM11/22/24
to kubernetes-sig-storage

Subject: Clarification on CSI Compliance for CSI Drivers

Hi Xing,

Thank you for your earlier response.

To clarify further, we were initially under the impression that passing all test suites ensures CSI compliance. However, a response on this GitHub issue suggests that the csi-sanity tool does not necessarily confirm if a driver is fully CSI compliant.

Could you please review and confirm if the following understanding is correct?

Mandatory Methods for CSI 1.6 Compliance:

To comply with the CSI specification, the following methods are mandatory for all drivers:

Identity Service
  • GetPluginInfo: Provides basic plugin metadata (e.g., name and version).
  • GetPluginCapabilities: Declares the capabilities supported by the plugin.
  • Probe: Checks the readiness and health of the plugin.
Controller Service
  • ControllerGetCapabilities: Ensures the CO understands the plugin’s supported features.
  • ValidateVolumeCapabilities: Confirms whether a volume supports the requested capabilities.
Node Service
  • NodePublishVolume: Handles the mounting of volumes to containers.
  • NodeUnpublishVolume: Handles the unmounting of volumes.
  • NodeGetCapabilities: Reports the node-specific capabilities.
  • NodeGetInfo: Provides topology information and volume attach limits.

Note:

  • Drivers need to implement only the methods that correspond to the capabilities they advertise. For example, if LIST_VOLUMES is not advertised, implementing ListVolumes is not mandatory.

Could you also confirm the process or tools to verify if a driver is compliant with the CSI 1.6 specification?

Looking forward to your insights!

Best regards,
Adarsh Kumar Yadav

Reply all
Reply to author
Forward
0 new messages