From b2cec4b20a4f929b5ed729f6bf2ba271da5d2af7 Mon Sep 17 00:00:00 2001 From: Timofey Kirillov Date: Mon, 6 Jun 2022 16:26:36 +0300 Subject: [PATCH] fix(helm): fix werf_secret_file not working in werf helm template command Signed-off-by: Timofey Kirillov --- .../helpers/common_template_funcs.go | 26 +++++++++++++++++++ pkg/deploy/helm/chart_extender/werf_chart.go | 22 +--------------- .../helm/chart_extender/werf_chart_stub.go | 4 +-- 3 files changed, 28 insertions(+), 24 deletions(-) diff --git a/pkg/deploy/helm/chart_extender/helpers/common_template_funcs.go b/pkg/deploy/helm/chart_extender/helpers/common_template_funcs.go index e5bbd9957c..a50675055b 100644 --- a/pkg/deploy/helm/chart_extender/helpers/common_template_funcs.go +++ b/pkg/deploy/helm/chart_extender/helpers/common_template_funcs.go @@ -2,8 +2,13 @@ package helpers import ( "context" + "fmt" + "path" + "strings" "text/template" + "github.com/werf/werf/pkg/deploy/helm/chart_extender/helpers/secrets" + "github.com/werf/logboek" ) @@ -26,3 +31,24 @@ func SetupWerfImageDeprecationFunc(ctx context.Context, funcMap template.FuncMap return "", nil } } + +func SetupWerfSecretFile(secretsRuntimeData *secrets.SecretsRuntimeData, funcMap template.FuncMap) { + funcMap["werf_secret_file"] = func(secretRelativePath string) (string, error) { + if path.IsAbs(secretRelativePath) { + return "", fmt.Errorf("expected relative secret file path, given path %v", secretRelativePath) + } + + decodedData, ok := secretsRuntimeData.DecodedSecretFilesData[secretRelativePath] + + if !ok { + var secretFiles []string + for key := range secretsRuntimeData.DecodedSecretFilesData { + secretFiles = append(secretFiles, key) + } + + return "", fmt.Errorf("secret file %q not found, you may use one of the following: %q", secretRelativePath, strings.Join(secretFiles, "', '")) + } + + return decodedData, nil + } +} diff --git a/pkg/deploy/helm/chart_extender/werf_chart.go b/pkg/deploy/helm/chart_extender/werf_chart.go index b8431e3e85..efba0c72ca 100644 --- a/pkg/deploy/helm/chart_extender/werf_chart.go +++ b/pkg/deploy/helm/chart_extender/werf_chart.go @@ -6,9 +6,7 @@ import ( "fmt" "io/ioutil" "os" - "path" "path/filepath" - "strings" "text/template" "github.com/mitchellh/copystructure" @@ -196,25 +194,7 @@ func (wc *WerfChart) MakeBundleValues(chrt *chart.Chart, inputVals map[string]in // SetupTemplateFuncs method for the chart.Extender interface func (wc *WerfChart) SetupTemplateFuncs(t *template.Template, funcMap template.FuncMap) { - funcMap["werf_secret_file"] = func(secretRelativePath string) (string, error) { - if path.IsAbs(secretRelativePath) { - return "", fmt.Errorf("expected relative secret file path, given path %v", secretRelativePath) - } - - decodedData, ok := wc.SecretsRuntimeData.DecodedSecretFilesData[secretRelativePath] - - if !ok { - var secretFiles []string - for key := range wc.SecretsRuntimeData.DecodedSecretFilesData { - secretFiles = append(secretFiles, key) - } - - return "", fmt.Errorf("secret file %q not found, you may use one of the following: %q", secretRelativePath, strings.Join(secretFiles, "', '")) - } - - return decodedData, nil - } - + helpers.SetupWerfSecretFile(wc.SecretsRuntimeData, funcMap) helpers.SetupIncludeWrapperFuncs(funcMap) helpers.SetupWerfImageDeprecationFunc(wc.ChartExtenderContext, funcMap) } diff --git a/pkg/deploy/helm/chart_extender/werf_chart_stub.go b/pkg/deploy/helm/chart_extender/werf_chart_stub.go index 2eda7add53..841323ac45 100644 --- a/pkg/deploy/helm/chart_extender/werf_chart_stub.go +++ b/pkg/deploy/helm/chart_extender/werf_chart_stub.go @@ -114,9 +114,7 @@ func (wc *WerfChartStub) MakeValues(inputVals map[string]interface{}) (map[strin // SetupTemplateFuncs method for the chart.Extender interface func (wc *WerfChartStub) SetupTemplateFuncs(t *template.Template, funcMap template.FuncMap) { - funcMap["werf_secret_file"] = func(secretRelativePath string) (string, error) { - return "stub_data", nil - } + helpers.SetupWerfSecretFile(wc.SecretsRuntimeData, funcMap) helpers.SetupIncludeWrapperFuncs(funcMap) helpers.SetupWerfImageDeprecationFunc(wc.ChartExtenderContext, funcMap) }