func()

in cmd/resource/utils.go [120:162]


func (c *Clients) processValues(m *Model) (map[string]interface{}, error) {
	values := map[string]interface{}{}
	valueYaml := map[string]interface{}{}
	currentMap := map[string]interface{}{}
	if m.ValueYaml != nil {
		err := yaml.Unmarshal([]byte(*m.ValueYaml), &valueYaml)
		if err != nil {
			return nil, err
		}
	}
	if m.Values != nil {
		for k, v := range m.Values {
			if err := strvals.ParseInto(fmt.Sprintf("%s=%s", k, v), values); err != nil {
				return nil, genericError("Processing values", err)
			}
		}
	}
	base := mergeMaps(valueYaml, values)
	if m.ValueOverrideURL != nil {
		u, err := url.Parse(*m.ValueOverrideURL)
		if err != nil {
			return nil, genericError("Process ValueOverrideURL ", err)
		}
		bucket := u.Host
		key := strings.TrimLeft(u.Path, "/")
		region, err := getBucketRegion(c.AWSClients.S3Client(nil, nil), bucket)
		if err != nil {
			return nil, err
		}
		err = downloadS3(c.AWSClients.S3Client(region, nil), bucket, key, valuesYamlFile)
		if err != nil {
			return nil, err
		}
		byteKey, err := ioutil.ReadFile(valuesYamlFile)
		if err != nil {
			return nil, genericError("Reading custom yaml", err)
		}
		if err := yaml.Unmarshal(byteKey, &currentMap); err != nil {
			return nil, genericError("Parsing yaml", err)
		}
	}
	return mergeMaps(base, currentMap), nil
}