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, ¤tMap); err != nil {
return nil, genericError("Parsing yaml", err)
}
}
return mergeMaps(base, currentMap), nil
}