diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index 595ec2c19..3019ef4c8 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -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