feat(templater): Add insertTemplate function
Similar to insertFile, but runs the templating against the file before inserting. This is useful for sharing common config between yaml files, e.g. volume mounts in a deployment.yaml and cronjob.yaml, and it's useful to be able to use the `configHash` annotation pattern with a templated configmap.yaml
This commit is contained in:
parent
8abe03de3c
commit
6353ed9d14
2 changed files with 11 additions and 1 deletions
|
@ -72,13 +72,15 @@ right.
|
|||
|
||||
Some template functions come from Go's standard library and are listed in the
|
||||
[Go documentation][]. In addition the functions declared by [sprig][] are
|
||||
available in kontemplate, as well as three custom functions:
|
||||
available in kontemplate, as well as five custom functions:
|
||||
|
||||
* `json`: Encodes any supplied data structure as JSON.
|
||||
* `gitHEAD`: Retrieves the commit hash at Git `HEAD`.
|
||||
* `passLookup`: Looks up the supplied key in [pass][].
|
||||
* `insertFile`: Insert the contents of the given file in the resource
|
||||
set folder as a string.
|
||||
* `insertTemplate`: Insert the contents of the given template in the resource
|
||||
set folder as a string.
|
||||
|
||||
## Examples:
|
||||
|
||||
|
|
|
@ -205,6 +205,14 @@ func templateFuncs(c *context.Context, rs *context.ResourceSet) template.FuncMap
|
|||
|
||||
return string(data), nil
|
||||
}
|
||||
m["insertTemplate"] = func(file string) (string, error) {
|
||||
data, err := templateFile(c, rs, path.Join(rs.Path, file))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return data.Rendered, nil
|
||||
}
|
||||
m["default"] = func(defaultVal interface{}, varName string) interface{} {
|
||||
if val, ok := rs.Values[varName]; ok {
|
||||
return val
|
||||
|
|
Loading…
Reference in a new issue