code: func flatten(key string, value interface{}, vars map[string]string) {
  	switch value.(type) {
  	case string:
  		log.Debug("setting key %s to: %s", key, value)
  		vars[key] = value.(string)
  	case map[string]interface{}:
  		inner := value.(map[string]interface{})
  		for innerKey, innerValue := range inner {
  			innerKey = path.Join(key, "/", innerKey)
  			flatten(innerKey, innerValue, vars)
  		}
  	default: // we don't know how to handle non string or maps of strings
  		log.Warning("type of '%s' is not supported (%T)", key, value)
  	}
  }
docs: // recursively walks on all the values of a specific key and set them in the variables map