about summary refs log tree commit diff
path: root/templater/templater.go
diff options
context:
space:
mode:
authorJude Venn <judev@cuttlefish.com>2019-04-29T22·13+0100
committerVincent Ambo <github@tazj.in>2019-05-01T22·30+0100
commit6353ed9d142412ee2c9c656c47459c56b3cdf698 (patch)
tree2ca35bd912b7d5e232f9d6fd9963f45ce9ebf6db /templater/templater.go
parent8abe03de3c75dd1dc1f2f65ff71b1ec3888208c2 (diff)
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
Diffstat (limited to 'templater/templater.go')
-rw-r--r--templater/templater.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/templater/templater.go b/templater/templater.go
index e842daeba0a2..55b64766ce8c 100644
--- a/templater/templater.go
+++ b/templater/templater.go
@@ -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