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:
parent
6d9bdb0d14
commit
aac734ffd5
|
|
@ -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},
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
releases:
|
||||
- name: no-envs
|
||||
chart: ../../../charts/raw-0.0.1
|
||||
values:
|
||||
- templates:
|
||||
- |
|
||||
envName: {{ .Values.envName }}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
releases:
|
||||
- name: no-values
|
||||
chart: ../../../charts/raw-0.0.1
|
||||
|
|
@ -6,7 +6,7 @@ environments:
|
|||
---
|
||||
|
||||
releases:
|
||||
- name: raw
|
||||
- name: prod
|
||||
chart: ../../../charts/raw-0.0.1
|
||||
values:
|
||||
- templates:
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ environments:
|
|||
---
|
||||
|
||||
releases:
|
||||
- name: raw
|
||||
- name: test
|
||||
chart: ../../../charts/raw-0.0.1
|
||||
values:
|
||||
- templates:
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue