func generateMapSubset()

in kubernetes/metadata/resource.go [176:213]


func generateMapSubset(input map[string]string, keys []string, dedot bool, useregex bool) mapstr.M {
	output := mapstr.M{}
	if input == nil {
		return output
	}

	for _, key := range keys {
		//This is the part where use_regex is enabled
		if useregex {
			pattern, err := regexp.Compile(key)
			if err == nil {
				for label, value := range input {
					matched := pattern.MatchString(label)
					if matched {
						if dedot {
							dedotKey := utils.DeDot(label)
							_, _ = output.Put(dedotKey, value)
						} else {
							_ = safemapstr.Put(output, label, value)
						}
					}

				}
			}
		} else {
			value, ok := input[key]
			if ok {
				if dedot {
					dedotKey := utils.DeDot(key)
					_, _ = output.Put(dedotKey, value)
				} else {
					_ = safemapstr.Put(output, key, value)
				}
			}
		}
	}
	return output
}