Skip to content

Commit 616f37e

Browse files
committed
include vmState specific StorageClass as RWO
Signed-off-by: GeraFD14 <gera.fd14@outlook.com>
1 parent eb0b02d commit 616f37e

1 file changed

Lines changed: 22 additions & 4 deletions

File tree

pkg/storagecapabilities/storagecapabilities.go

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,9 @@ var CapabilitiesByProvisionerKey = map[string][]StorageCapabilities{
105105
// IBM VPC File CSI
106106
"vpc.file.csi.ibm.io": {{rwx, file}, {rwo, file}},
107107
"vpc.file.csi.ibm.io/dp2": {{rwx, file}, {rwo, file}},
108+
"vpc.file.csi.ibm.io/dp2-rwo": {{rwo, file}},
108109
"vpc.file.csi.ibm.io/rfs": {{rwx, file}, {rwo, file}},
110+
"vpc.file.csi.ibm.io/rfs-rwo": {{rwo, file}},
109111
// Portworx in-tree CSI
110112
"kubernetes.io/portworx-volume/nfs": {{rwx, file}, {rwo, file}},
111113
"kubernetes.io/portworx-volume": {{rwx, block}, {rwx, file}, {rwo, block}, {rwo, file}},
@@ -164,7 +166,9 @@ var SourceFormatsByProvisionerKey = map[string]cdiv1.DataImportCronSourceFormat{
164166
"pd.csi.storage.gke.io/hyperdisk": cdiv1.DataImportCronSourceFormatSnapshot,
165167
"vpc.file.csi.ibm.io": cdiv1.DataImportCronSourceFormatSnapshot,
166168
"vpc.file.csi.ibm.io/dp2": cdiv1.DataImportCronSourceFormatSnapshot,
169+
"vpc.file.csi.ibm.io/dp2-rwo": cdiv1.DataImportCronSourceFormatSnapshot,
167170
"vpc.file.csi.ibm.io/rfs": cdiv1.DataImportCronSourceFormatSnapshot,
171+
"vpc.file.csi.ibm.io/rfs-rwo": cdiv1.DataImportCronSourceFormatSnapshot,
168172
}
169173

170174
// CloneStrategyByProvisionerKey defines the advised clone strategy for a provisioner
@@ -180,7 +184,9 @@ var CloneStrategyByProvisionerKey = map[string]cdiv1.CDICloneStrategy{
180184
"vpc.block.csi.ibm.io": cdiv1.CloneStrategyHostAssisted,
181185
"vpc.file.csi.ibm.io": cdiv1.CloneStrategySnapshot,
182186
"vpc.file.csi.ibm.io/dp2": cdiv1.CloneStrategySnapshot,
187+
"vpc.file.csi.ibm.io/dp2-rwo": cdiv1.CloneStrategySnapshot,
183188
"vpc.file.csi.ibm.io/rfs": cdiv1.CloneStrategySnapshot,
189+
"vpc.file.csi.ibm.io/rfs-rwo": cdiv1.CloneStrategySnapshot,
184190
"rbd.csi.ceph.com": cdiv1.CloneStrategyCsiClone,
185191
"rook-ceph.rbd.csi.ceph.com": cdiv1.CloneStrategyCsiClone,
186192
"openshift-storage.rbd.csi.ceph.com": cdiv1.CloneStrategyCsiClone,
@@ -220,7 +226,8 @@ var MinimumSupportedPVCSizeByProvisionerKey = map[string]string{
220226
// https://cloud.google.com/netapp/volumes/docs/discover/service-levels
221227
"csi.trident.netapp.io/gcnv-flex": "1Gi",
222228
// IBM VPC File Storage - RFS profile has fixed minimum
223-
"vpc.file.csi.ibm.io/rfs": "1Gi",
229+
"vpc.file.csi.ibm.io/rfs": "1Gi",
230+
"vpc.file.csi.ibm.io/rfs-rwo": "1Gi",
224231
}
225232

226233
// UseReadWriteOnceForDataImportCronByProvisionerKey is a hash of provisioners which require RWO access mode for DataImportCron PVCs
@@ -328,7 +335,7 @@ func GetAdvisedCloneStrategy(sc *storagev1.StorageClass) (cdiv1.CDICloneStrategy
328335
func GetMinimumSupportedPVCSize(sc *storagev1.StorageClass) (string, bool) {
329336
provisionerKey := storageProvisionerKey(sc)
330337
// Check for provisioners with dynamic minimum size calculation
331-
if provisionerKey == "vpc.file.csi.ibm.io/dp2" {
338+
if provisionerKey == "vpc.file.csi.ibm.io/dp2" || provisionerKey == "vpc.file.csi.ibm.io/dp2-rwo" {
332339
return getIBMVPCFileDP2MinimumSize(sc)
333340
}
334341
size, found := MinimumSupportedPVCSizeByProvisionerKey[provisionerKey]
@@ -594,11 +601,22 @@ var storageClassToProvisionerKeyMapper = map[string]func(sc *storagev1.StorageCl
594601
return "vpc.file.csi.ibm.io"
595602
}
596603
profile := sc.Parameters["profile"]
604+
// When vmState is true, use RWO-specific variants
605+
vmState := sc.Parameters["vmState"]
606+
597607
switch profile {
598608
case "rfs":
599-
return "vpc.file.csi.ibm.io/rfs"
609+
if vmState == "true" {
610+
return "vpc.file.csi.ibm.io/rfs-rwo"
611+
} else {
612+
return "vpc.file.csi.ibm.io/rfs"
613+
}
600614
case "dp2":
601-
return "vpc.file.csi.ibm.io/dp2"
615+
if vmState == "true" {
616+
return "vpc.file.csi.ibm.io/dp2-rwo"
617+
} else {
618+
return "vpc.file.csi.ibm.io/dp2"
619+
}
602620
default:
603621
return "vpc.file.csi.ibm.io"
604622
}

0 commit comments

Comments
 (0)