@@ -225,22 +225,28 @@ func (c *IBMObjectCSI) GenerateSCCForNodeClusterRoleBinding() *rbacv1.ClusterRol
225225}
226226
227227// Generates3fsSC ...
228- func (c * IBMObjectCSI ) GenerateS3fsSC (reclaimPolicy corev1.PersistentVolumeReclaimPolicy , s3Provider string ,
229- region string , cosEndpoint string , cosStorageClass string ) * storagev1.StorageClass {
228+ func (c * IBMObjectCSI ) GenerateS3fsSC (scInputParams SCInputParams ) * storagev1.StorageClass {
230229 var storageClassName , locationConstraint string
231-
232- if reclaimPolicy == corev1 .PersistentVolumeReclaimRetain {
233- // "ibm-object-storage-standard-s3fs-retain"
234- storageClassName = fmt .Sprintf ("%s-%s-s3fs-%s" , constants .StorageClassPrefix , cosStorageClass , constants .RetainPolicyTag )
230+ if scInputParams .S3Provider == constants .S3ProviderIBM {
231+ locationConstraint = fmt .Sprintf ("%s-%s" , scInputParams .Region , scInputParams .COSStorageClass )
235232 } else {
236- // "ibm-object-storage-standard-s3fs"
237- storageClassName = fmt .Sprintf ("%s-%s-s3fs" , constants .StorageClassPrefix , cosStorageClass )
233+ locationConstraint = scInputParams .Region
238234 }
239235
240- if s3Provider == constants .S3ProviderIBM {
241- locationConstraint = fmt .Sprintf ("%s-%s" , region , cosStorageClass )
242- } else {
243- locationConstraint = region
236+ // "ibm-object-storage-standard-s3fs"
237+ storageClassName = fmt .Sprintf ("%s-%s-s3fs" , constants .StorageClassPrefix , scInputParams .COSStorageClass )
238+ if scInputParams .ReclaimPolicy == corev1 .PersistentVolumeReclaimRetain {
239+ storageClassName = fmt .Sprintf ("%s-%s" , storageClassName , constants .RetainPolicyTag ) // "ibm-object-storage-standard-s3fs-retain"
240+ }
241+
242+ mountOptions := []string {
243+ "multipart_size=52" ,
244+ "multireq_max=20" ,
245+ "max_dirty_data=5120" ,
246+ "parallel_count=20" ,
247+ "max_stat_cache_size=100000" ,
248+ "retries=5" ,
249+ "kernel_cache" ,
244250 }
245251
246252 return & storagev1.StorageClass {
@@ -249,19 +255,12 @@ func (c *IBMObjectCSI) GenerateS3fsSC(reclaimPolicy corev1.PersistentVolumeRecla
249255 Labels : constants .CommonCSIResourceLabels ,
250256 },
251257 Provisioner : constants .DriverName ,
252- ReclaimPolicy : & reclaimPolicy ,
253- MountOptions : []string {
254- "multipart_size=62" ,
255- "max_dirty_data=51200" ,
256- "parallel_count=8" ,
257- "max_stat_cache_size=100000" ,
258- "retries=5" ,
259- "kernel_cache" ,
260- },
258+ ReclaimPolicy : & scInputParams .ReclaimPolicy ,
259+ MountOptions : mountOptions ,
261260 Parameters : map [string ]string {
262261 "mounter" : "s3fs" ,
263262 "client" : "awss3" ,
264- "cosEndpoint" : cosEndpoint ,
263+ "cosEndpoint" : scInputParams . COSEndpoint ,
265264 "locationConstraint" : locationConstraint ,
266265 "csi.storage.k8s.io/node-publish-secret-name" : "${pvc.annotations['cos.csi.driver/secret']}" ,
267266 "csi.storage.k8s.io/node-publish-secret-namespace" : "${pvc.namespace}" ,
@@ -270,22 +269,19 @@ func (c *IBMObjectCSI) GenerateS3fsSC(reclaimPolicy corev1.PersistentVolumeRecla
270269}
271270
272271// GenerateRcloneSC ...
273- func (c * IBMObjectCSI ) GenerateRcloneSC (reclaimPolicy corev1.PersistentVolumeReclaimPolicy , s3Provider string ,
274- region string , cosEndpoint string , cosStorageClass string ) * storagev1.StorageClass {
272+ func (c * IBMObjectCSI ) GenerateRcloneSC (scInputParams SCInputParams ) * storagev1.StorageClass {
275273 var storageClassName , locationConstraint string
276274
277- if reclaimPolicy == corev1 .PersistentVolumeReclaimRetain {
278- // "ibm-object-storage-standard-rclone-retain"
279- storageClassName = fmt .Sprintf ("%s-%s-rclone-%s" , constants .StorageClassPrefix , cosStorageClass , constants .RetainPolicyTag )
280- } else {
281- // "ibm-object-storage-standard-rclone"
282- storageClassName = fmt .Sprintf ("%s-%s-rclone" , constants .StorageClassPrefix , cosStorageClass )
275+ // "ibm-object-storage-standard-rclone"
276+ storageClassName = fmt .Sprintf ("%s-%s-rclone" , constants .StorageClassPrefix , scInputParams .COSStorageClass )
277+ if scInputParams .ReclaimPolicy == corev1 .PersistentVolumeReclaimRetain {
278+ storageClassName = fmt .Sprintf ("%s-%s" , storageClassName , constants .RetainPolicyTag ) // "ibm-object-storage-standard-rclone-retain"
283279 }
284280
285- if s3Provider == constants .S3ProviderIBM {
286- locationConstraint = fmt .Sprintf ("%s-%s" , region , cosStorageClass )
281+ if scInputParams . S3Provider == constants .S3ProviderIBM {
282+ locationConstraint = fmt .Sprintf ("%s-%s" , scInputParams . Region , scInputParams . COSStorageClass )
287283 } else {
288- locationConstraint = region
284+ locationConstraint = scInputParams . Region
289285 }
290286
291287 return & storagev1.StorageClass {
@@ -294,22 +290,21 @@ func (c *IBMObjectCSI) GenerateRcloneSC(reclaimPolicy corev1.PersistentVolumeRec
294290 Labels : constants .CommonCSIResourceLabels ,
295291 },
296292 Provisioner : constants .DriverName ,
297- ReclaimPolicy : & reclaimPolicy ,
293+ ReclaimPolicy : & scInputParams . ReclaimPolicy ,
298294 MountOptions : []string {
299295 "acl=private" ,
300296 "bucket_acl=private" ,
301- "upload_cutoff=256Mi" ,
302- "chunk_size=64Mi" ,
303- "max_upload_parts=64" ,
304- "upload_concurrency=20" ,
305- "copy_cutoff=1Gi" ,
306- "memory_pool_flush_time=30s" ,
297+ "upload_cutoff=100Mi" ,
298+ "chunk_size=16Mi" ,
299+ "max_upload_parts=1000" ,
300+ "upload_concurrency=8" ,
301+ "multi_thread_streams=8" ,
307302 "disable_checksum=true" ,
308303 },
309304 Parameters : map [string ]string {
310305 "mounter" : "rclone" ,
311306 "client" : "awss3" ,
312- "cosEndpoint" : cosEndpoint ,
307+ "cosEndpoint" : scInputParams . COSEndpoint ,
313308 "locationConstraint" : locationConstraint ,
314309 "csi.storage.k8s.io/node-publish-secret-name" : "${pvc.annotations['cos.csi.driver/secret']}" ,
315310 "csi.storage.k8s.io/node-publish-secret-namespace" : "${pvc.namespace}" ,
0 commit comments