@@ -64,7 +64,7 @@ func RenderDir(manifestDir string, d *RenderData) ([]*unstructured.Unstructured,
6464 return nil
6565 }
6666
67- objs , err := RenderTemplate (path , d )
67+ objs , err := RenderFileTemplate (path , d )
6868 if err != nil {
6969 return err
7070 }
@@ -77,10 +77,14 @@ func RenderDir(manifestDir string, d *RenderData) ([]*unstructured.Unstructured,
7777 return out , nil
7878}
7979
80- // RenderTemplate reads, renders, and attempts to parse a yaml or
80+ func RenderTemplate (template string , d * RenderData ) (* bytes.Buffer , error ) {
81+ return renderTemplate (template , d )
82+ }
83+
84+ // RenderFileTemplate reads, renders, and attempts to parse a yaml or
8185// json file representing one or more k8s api objects
82- func RenderTemplate (path string , d * RenderData ) ([]* unstructured.Unstructured , error ) {
83- rendered , err := renderTemplate (path , d )
86+ func RenderFileTemplate (path string , d * RenderData ) ([]* unstructured.Unstructured , error ) {
87+ rendered , err := renderFileTemplate (path , d )
8488 if err != nil {
8589 return nil , err
8690 }
@@ -112,8 +116,9 @@ func RenderTemplate(path string, d *RenderData) ([]*unstructured.Unstructured, e
112116 return out , nil
113117}
114118
115- func renderTemplate (path string , d * RenderData ) (* bytes.Buffer , error ) {
116- tmpl := template .New (path ).Option ("missingkey=error" )
119+ func renderTemplate (rawTemplate string , d * RenderData ) (* bytes.Buffer , error ) {
120+
121+ tmpl := template .New ("template" ).Option ("missingkey=error" )
117122 if d .Funcs != nil {
118123 tmpl .Funcs (d .Funcs )
119124 }
@@ -122,23 +127,28 @@ func renderTemplate(path string, d *RenderData) (*bytes.Buffer, error) {
122127 tmpl .Funcs (template.FuncMap {"getOr" : getOr , "isSet" : isSet })
123128 tmpl .Funcs (sprig .TxtFuncMap ())
124129
125- source , err := os .ReadFile (path )
126- if err != nil {
127- return nil , errors .Wrapf (err , "failed to read manifest %s" , path )
128- }
129-
130- if _ , err := tmpl .Parse (string (source )); err != nil {
131- return nil , errors .Wrapf (err , "failed to parse manifest %s as template" , path )
130+ if _ , err := tmpl .Parse (rawTemplate ); err != nil {
131+ return nil , errors .Wrapf (err , "failed to parse manifest %s as template" , rawTemplate )
132132 }
133133
134134 rendered := bytes.Buffer {}
135135 if err := tmpl .Execute (& rendered , d .Data ); err != nil {
136- return nil , errors .Wrapf (err , "failed to render manifest %s" , path )
136+ return nil , errors .Wrapf (err , "failed to render manifest %s" , rawTemplate )
137137 }
138138
139139 return & rendered , nil
140140}
141141
142+ func renderFileTemplate (path string , d * RenderData ) (* bytes.Buffer , error ) {
143+
144+ source , err := os .ReadFile (path )
145+ if err != nil {
146+ return nil , errors .Wrapf (err , "failed to read manifest %s" , path )
147+ }
148+
149+ return renderTemplate (string (source [:]), d )
150+ }
151+
142152func formateDeviceList (devs []DeviceInfo ) string {
143153 out := ""
144154 for _ , dev := range devs {
@@ -232,7 +242,7 @@ func filterTemplates(toFilter map[string]string, path string, d *RenderData) err
232242 }
233243
234244 // Render the template file
235- renderedData , err := renderTemplate (path , d )
245+ renderedData , err := renderFileTemplate (path , d )
236246 if err != nil {
237247 return err
238248 }
0 commit comments