From 45be24da53dd8af3342b9946044b687b26ce9a8a Mon Sep 17 00:00:00 2001 From: Quan TRAN Date: Thu, 31 Mar 2022 03:57:33 +0200 Subject: [PATCH] Add .StateValues as alias of .Values in EnvironmentTemplateData (#2056) --- pkg/app/two_pass_renderer.go | 12 ++---------- pkg/state/envvals_loader.go | 3 ++- pkg/state/types.go | 9 ++++++++- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/pkg/app/two_pass_renderer.go b/pkg/app/two_pass_renderer.go index a8715474..561c2ca7 100644 --- a/pkg/app/two_pass_renderer.go +++ b/pkg/app/two_pass_renderer.go @@ -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 { diff --git a/pkg/state/envvals_loader.go b/pkg/state/envvals_loader.go index cd73ed3a..c1ea0ec5 100644 --- a/pkg/state/envvals_loader.go +++ b/pkg/state/envvals_loader.go @@ -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 { diff --git a/pkg/state/types.go b/pkg/state/types.go index 5105378d..6ae91c3a 100644 --- a/pkg/state/types.go +++ b/pkg/state/types.go @@ -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