From 98886df5d2dc7793dd27dccbb706f1787de1cd5c Mon Sep 17 00:00:00 2001 From: KUOKA Yusuke Date: Fri, 10 Apr 2020 08:21:23 +0900 Subject: [PATCH] fix: .Values is missing keys with zero values (#1185) Ref #1184 --- pkg/state/create.go | 4 ++-- pkg/state/state_exec_tmpl.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/state/create.go b/pkg/state/create.go index 3315d74a..67efa63f 100644 --- a/pkg/state/create.go +++ b/pkg/state/create.go @@ -235,7 +235,7 @@ func (c *StateCreator) loadEnvValues(st *HelmState, name string, failOnMissingEn if ctxEnv != nil { intEnv := *ctxEnv - if err := mergo.Merge(&intEnv, newEnv, mergo.WithOverride); err != nil { + if err := mergo.Merge(&intEnv, newEnv, mergo.WithOverride, mergo.WithOverwriteWithEmptyValue); err != nil { return nil, fmt.Errorf("error while merging environment values for \"%s\": %v", name, err) } @@ -303,7 +303,7 @@ func (c *StateCreator) scatterGatherEnvSecretFiles(st *HelmState, envSecretFiles if result.err != nil { errs = append(errs, result.err) } else { - if err := mergo.Merge(&envVals, &result.result, mergo.WithOverride); err != nil { + if err := mergo.Merge(&envVals, &result.result, mergo.WithOverride, mergo.WithOverwriteWithEmptyValue); err != nil { errs = append(errs, fmt.Errorf("failed to load environment secrets file \"%s\": %v", result.path, err)) } } diff --git a/pkg/state/state_exec_tmpl.go b/pkg/state/state_exec_tmpl.go index c68ffbc2..aa590ec5 100644 --- a/pkg/state/state_exec_tmpl.go +++ b/pkg/state/state_exec_tmpl.go @@ -13,10 +13,10 @@ import ( func (st *HelmState) Values() (map[string]interface{}, error) { vals := map[string]interface{}{} - if err := mergo.Merge(&vals, st.Env.Defaults, mergo.WithOverride); err != nil { + if err := mergo.Merge(&vals, st.Env.Defaults, mergo.WithOverride, mergo.WithOverwriteWithEmptyValue); err != nil { return nil, err } - if err := mergo.Merge(&vals, st.Env.Values, mergo.WithOverride); err != nil { + if err := mergo.Merge(&vals, st.Env.Values, mergo.WithOverride, mergo.WithOverwriteWithEmptyValue); err != nil { return nil, err }