in pkg/csi_driver/controller.go [282:314]
func extractLabels(parameters map[string]string, driverName string) (map[string]string, error) {
labels := make(map[string]string)
scLabels := make(map[string]string)
for k, v := range parameters {
switch strings.ToLower(k) {
case ParameterKeyPVCName:
labels[tagKeyCreatedForClaimName] = v
case ParameterKeyPVCNamespace:
labels[tagKeyCreatedForClaimNamespace] = v
case ParameterKeyPVName:
labels[tagKeyCreatedForVolumeName] = v
case ParameterKeyLabels:
var err error
scLabels, err = util.ConvertLabelsStringToMap(v)
if err != nil {
return nil, fmt.Errorf("parameters contain invalid labels parameter: %w", err)
}
}
}
labels[tagKeyCreatedBy] = strings.ReplaceAll(driverName, ".", "_")
labels, err := mergeLabels(scLabels, labels)
if err != nil {
return nil, err
}
// TODO: validate labels: https://cloud.google.com/storage/docs/tags-and-labels#bucket-labels
for k, v := range labels {
labels[k] = strings.ReplaceAll(v, ".", "_")
}
return mergeLabels(scLabels, labels)
}