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 // Add the 'tpl' function here
funcMap["tpl"] = func(tpl string, vals chartutil.Values) (string, error) { 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{ r := renderable{
tpl: tpl, tpl: tpl,
vals: vals, vals: vals,
basePath: basePath.(string),
} }
println(vals.Table)
templates := map[string]renderable{} 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) result, err := e.render(templates)
if err != nil { if err != nil {
return "", fmt.Errorf("Error during tpl function execution for %q: %s", tpl, err.Error()) 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 return funcMap

Loading…
Cancel
Save