You can provision storage using iSCSI, SMB/CIFS, NFS, or NVMe/TCP protocols by creating a StorageClass with the csi.san.synology.com provisioner.
iSCSI Protocol
Used for creating LUNs. Supports fsType and formatOptions.
SMB/CIFS Protocol
Requirement: You must first create an Opaque secret containing the DSM user credentials used to access the shared folder. You must then reference this secret in the StorageClass using csi.storage.k8s.io/node-stage-secret-name and csi.storage.k8s.io/node-stage-secret-namespace.
NFS Protocol
Used for creating shared folders. Supports mountPermissions (e.g., 0755) and mountOptions (e.g., nfsvers=4.1).
NVMe/TCP Protocol
Used for creating NVMe namespaces. Requires protocol: "nvme".
# Example iSCSI StorageClass
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: synostorage
provisioner: csi.san.synology.com
parameters:
fsType: 'btrfs'
dsm: '192.168.1.1'
location: '/volume1'
formatOptions: '--nodiscard'
reclaimPolicy: Retain
allowVolumeExpansion: true