in plugins/vsphere_volume.go [71:110]
func (t *vSphereCSITranslator) TranslateInTreeStorageClassToCSI(sc *storage.StorageClass) (*storage.StorageClass, error) {
if sc == nil {
return nil, fmt.Errorf("sc is nil")
}
var params = map[string]string{}
for k, v := range sc.Parameters {
switch strings.ToLower(k) {
case fsTypeKey:
params[csiFsTypeKey] = v
case paramStoragePolicyName:
params[paramStoragePolicyName] = v
case "datastore":
params[paramDatastore] = v
case "diskformat":
params[paramDiskFormat] = v
case "hostfailurestotolerate":
params[paramHostFailuresToTolerate] = v
case "forceprovisioning":
params[paramForceProvisioning] = v
case "cachereservation":
params[paramCacheReservation] = v
case "diskstripes":
params[paramDiskstripes] = v
case "objectspacereservation":
params[paramObjectspacereservation] = v
case "iopslimit":
params[paramIopslimit] = v
default:
klog.V(2).Infof("StorageClass parameter [name:%q, value:%q] is not supported", k, v)
}
}
// This helps vSphere CSI driver to identify in-tree provisioner request vs CSI provisioner request
// When this is true, Driver returns initialvolumefilepath in the VolumeContext, which is
// used in TranslateCSIPVToInTree
params[paramcsiMigration] = "true"
// Note: sc.AllowedTopologies for Topology based volume provisioning will be supplied as it is.
sc.Parameters = params
return sc, nil
}