fix(helm): Set template context inside tpl function to outer function.

docs(helm): Added documentation about tpl function
pull/3061/head
Lukas Eichler 7 years ago
parent 16571305bb
commit 2c338db1bd
No known key found for this signature in database
GPG Key ID: 692D162D1550AE1B

@ -166,19 +166,32 @@ func (e *Engine) alterFuncMap(t *template.Template) template.FuncMap {
// Add the 'tpl' function here
funcMap["tpl"] = func(tpl string, vals chartutil.Values) (string, error) {
basePath, err := vals.PathValue("Template.BasePath")
if err != nil {
return "", fmt.Errorf("Cannot retrieve Template.Basepath from values inside tpl function", tpl, err.Error())
}
r := renderable{
tpl: tpl,
vals: vals,
tpl: tpl,
vals: vals,
basePath: basePath.(string),
}
println(vals.Table)
templates := map[string]renderable{}
templates["aaa_template"] = r
templateName, err := vals.PathValue("Template.Name")
if err != nil {
return "", fmt.Errorf("Cannot retrieve Template.Name from values inside tpl function", tpl, err.Error())
}
templates[templateName.(string)] = r
result, err := e.render(templates)
if err != nil {
return "", fmt.Errorf("Error during tpl function execution for %q: %s", tpl, err.Error())
}
return result["aaa_template"], nil
return result[templateName.(string)], nil
}
return funcMap

Loading…
Cancel
Save