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 }