Add .StateValues as alias of .Values in EnvironmentTemplateData (#2056)

This commit is contained in:
Quan TRAN 2022-03-31 03:57:33 +02:00 committed by GitHub
parent 4716320d99
commit 45be24da53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 12 deletions

View File

@ -21,11 +21,7 @@ func prependLineNumbers(text string) string {
}
func (r *desiredStateLoader) renderPrestate(firstPassEnv *environment.Environment, baseDir, filename string, content []byte) (*environment.Environment, *state.HelmState) {
tmplData := state.EnvironmentTemplateData{
Environment: *firstPassEnv,
Namespace: r.namespace,
Values: map[string]interface{}{},
}
tmplData := state.NewEnvironmentTemplateData(*firstPassEnv, r.namespace, map[string]interface{}{})
firstPassRenderer := tmpl.NewFirstPassRenderer(baseDir, tmplData)
// parse as much as we can, tolerate errors, this is a preparse
@ -127,11 +123,7 @@ func (r *desiredStateLoader) twoPassRenderTemplateToYaml(inherited, overrode *en
r.logger.Debugf("vals:\n%v\ndefaultVals:%v", vals, prestate.DefaultValues)
}
tmplData := state.EnvironmentTemplateData{
Environment: *finalEnv,
Namespace: r.namespace,
Values: vals,
}
tmplData := state.NewEnvironmentTemplateData(*finalEnv, r.namespace, vals)
secondPassRenderer := tmpl.NewFileRenderer(r.readFile, baseDir, tmplData)
yamlBuf, err := secondPassRenderer.RenderTemplateContentToBuffer(content)
if err != nil {

View File

@ -61,7 +61,8 @@ func (ld *EnvironmentValuesLoader) LoadEnvironmentValues(missingFileHandler *str
} else {
env = *ctxEnv
}
tmplData := EnvironmentTemplateData{env, "", map[string]interface{}{}}
tmplData := NewEnvironmentTemplateData(env, "", map[string]interface{}{})
r := tmpl.NewFileRenderer(ld.readFile, filepath.Dir(f), tmplData)
bytes, err := r.RenderToBytes(f)
if err != nil {

View File

@ -16,7 +16,14 @@ type EnvironmentTemplateData struct {
// Namespace is accessible as `.Namespace` from any non-values template executed by the renderer
Namespace string
// Values is accessible as `.Values` and it contains default state values overrode by environment values and override values.
Values map[string]interface{}
Values map[string]interface{}
StateValues *map[string]interface{}
}
func NewEnvironmentTemplateData(environment environment.Environment, namespace string, values map[string]interface{}) *EnvironmentTemplateData {
d := EnvironmentTemplateData{environment, namespace, values, nil}
d.StateValues = &d.Values
return &d
}
// releaseTemplateData provides variables accessible while executing golang text/template expressions in release templates