mirror of
https://github.com/helmfile/helmfile.git
synced 2026-09-30 09:33:41 +02:00
fix re-using environment state in sub-helmfiles issue (#951)
* fix re-using environment state in sub-helmfiles issue Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
@@ -189,6 +189,7 @@ func (ld *desiredStateLoader) load(env, overrodeEnv *environment.Environment, ba
|
||||
normalizedContent := bytes.ReplaceAll(content, []byte("\r\n"), []byte("\n"))
|
||||
parts := bytes.Split(normalizedContent, []byte("\n---\n"))
|
||||
|
||||
hasEnv := env != nil || overrodeEnv != nil
|
||||
var finalState *state.HelmState
|
||||
|
||||
for i, part := range parts {
|
||||
@@ -267,7 +268,7 @@ func (ld *desiredStateLoader) load(env, overrodeEnv *environment.Environment, ba
|
||||
|
||||
// If environments are not defined in the helmfile at all although the env is specified,
|
||||
// it's a missing env situation. Let's fail.
|
||||
if len(finalState.Environments) == 0 && evaluateBases && env.Name != state.DefaultEnv {
|
||||
if len(finalState.Environments) == 0 && evaluateBases && !hasEnv && env.Name != state.DefaultEnv {
|
||||
return nil, &state.StateLoadError{
|
||||
Msg: fmt.Sprintf("failed to read %s", finalState.FilePath),
|
||||
Cause: &state.UndefinedEnvError{Env: env.Name},
|
||||
|
||||
+1
-1
@@ -248,7 +248,7 @@ func (c *StateCreator) loadEnvValues(st *HelmState, name string, failOnMissingEn
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
} else if ctxEnv == nil && name != DefaultEnv && failOnMissingEnv {
|
||||
} else if ctxEnv == nil && overrode == nil && name != DefaultEnv && failOnMissingEnv {
|
||||
return nil, &UndefinedEnvError{Env: name}
|
||||
}
|
||||
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
releases:
|
||||
- name: no-envs
|
||||
chart: ../../../charts/raw-0.0.1
|
||||
values:
|
||||
- templates:
|
||||
- |
|
||||
envName: {{ .Values.envName }}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
releases:
|
||||
- name: no-values
|
||||
chart: ../../../charts/raw-0.0.1
|
||||
Vendored
+1
-1
@@ -6,7 +6,7 @@ environments:
|
||||
---
|
||||
|
||||
releases:
|
||||
- name: raw
|
||||
- name: prod
|
||||
chart: ../../../charts/raw-0.0.1
|
||||
values:
|
||||
- templates:
|
||||
|
||||
Vendored
+1
-1
@@ -6,7 +6,7 @@ environments:
|
||||
---
|
||||
|
||||
releases:
|
||||
- name: raw
|
||||
- name: test
|
||||
chart: ../../../charts/raw-0.0.1
|
||||
values:
|
||||
- templates:
|
||||
|
||||
+4
@@ -10,3 +10,7 @@ helmfiles:
|
||||
- path: helmfiles/prod.yaml
|
||||
values:
|
||||
- envName: {{ .Values.envName }}
|
||||
- path: helmfiles/no-envs.yaml
|
||||
values:
|
||||
- envName: {{ .Values.envName }}
|
||||
- path: helmfiles/no-values.yaml
|
||||
Vendored
+8
-2
@@ -1,7 +1,13 @@
|
||||
Building dependency release=raw, chart=../../../charts/raw-0.0.1
|
||||
Templating release=raw, chart=../../../charts/raw-0.0.1
|
||||
Building dependency release=test, chart=../../../charts/raw-0.0.1
|
||||
Templating release=test, chart=../../../charts/raw-0.0.1
|
||||
---
|
||||
# Source: raw/templates/resources.yaml
|
||||
subhelmfile: test
|
||||
envName: test
|
||||
|
||||
Building dependency release=no-envs, chart=../../../charts/raw-0.0.1
|
||||
Templating release=no-envs, chart=../../../charts/raw-0.0.1
|
||||
---
|
||||
# Source: raw/templates/resources.yaml
|
||||
envName: test
|
||||
|
||||
|
||||
Reference in New Issue
Block a user