in pkg/csi_driver/utils.go [136:176]
func joinMountOptions(existingOptions []string, newOptions []string) []string {
overwritableOptions := map[string]string{
"gid": "",
"file-mode": "",
"dir-mode": "",
}
allMountOptions := sets.NewString()
process := func(mountOption string) {
if len(mountOption) > 0 {
optionPair := strings.SplitN(mountOption, "=", 2)
if len(optionPair) == 2 {
if _, ok := overwritableOptions[optionPair[0]]; ok {
overwritableOptions[optionPair[0]] = optionPair[1]
return
}
}
allMountOptions.Insert(mountOption)
}
}
for _, mountOption := range existingOptions {
process(mountOption)
}
for _, mountOption := range newOptions {
process(mountOption)
}
for k, v := range overwritableOptions {
if v != "" {
allMountOptions.Insert(k + "=" + v)
}
}
return allMountOptions.List()
}