From a580c9a44c85b60f08fdff9d19937103ccb480d1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 28 Apr 2022 18:19:01 +0800 Subject: [PATCH] Fix: env trait compatible with valueFrom (#3784) Signed-off-by: Somefive (cherry picked from commit d0506db414d39761cf75584cdab96ce9561df086) Co-authored-by: Somefive --- charts/vela-core/templates/defwithtemplate/env.yaml | 12 ++++++++---- .../vela-minimal/templates/defwithtemplate/env.yaml | 12 ++++++++---- vela-templates/definitions/internal/trait/env.cue | 12 ++++++++---- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/charts/vela-core/templates/defwithtemplate/env.yaml b/charts/vela-core/templates/defwithtemplate/env.yaml index 3697f3208..3a792b585 100644 --- a/charts/vela-core/templates/defwithtemplate/env.yaml +++ b/charts/vela-core/templates/defwithtemplate/env.yaml @@ -46,7 +46,7 @@ spec: }] } if _baseEnv != _|_ { - _baseEnvMap: {for envVar in _baseEnv {"\(envVar.name)": envVar.value}} + _baseEnvMap: {for envVar in _baseEnv {"\(envVar.name)": envVar}} // +patchStrategy=replace env: [ for envVar in _baseEnv if _delKeys[envVar.name] == _|_ && !_params.replace { name: envVar.name @@ -54,11 +54,15 @@ spec: value: _params.env[envVar.name] } if _params.env[envVar.name] == _|_ { - value: envVar.value + if envVar.value != _|_ { + value: envVar.value + } + if envVar.valueFrom != _|_ { + valueFrom: envVar.valueFrom + } } }] + [ for k, v in _params.env if _delKeys[k] == _|_ && (_params.replace || _baseEnvMap[k] == _|_) { - name: k - value: v + v }] } } diff --git a/charts/vela-minimal/templates/defwithtemplate/env.yaml b/charts/vela-minimal/templates/defwithtemplate/env.yaml index 3697f3208..3a792b585 100644 --- a/charts/vela-minimal/templates/defwithtemplate/env.yaml +++ b/charts/vela-minimal/templates/defwithtemplate/env.yaml @@ -46,7 +46,7 @@ spec: }] } if _baseEnv != _|_ { - _baseEnvMap: {for envVar in _baseEnv {"\(envVar.name)": envVar.value}} + _baseEnvMap: {for envVar in _baseEnv {"\(envVar.name)": envVar}} // +patchStrategy=replace env: [ for envVar in _baseEnv if _delKeys[envVar.name] == _|_ && !_params.replace { name: envVar.name @@ -54,11 +54,15 @@ spec: value: _params.env[envVar.name] } if _params.env[envVar.name] == _|_ { - value: envVar.value + if envVar.value != _|_ { + value: envVar.value + } + if envVar.valueFrom != _|_ { + valueFrom: envVar.valueFrom + } } }] + [ for k, v in _params.env if _delKeys[k] == _|_ && (_params.replace || _baseEnvMap[k] == _|_) { - name: k - value: v + v }] } } diff --git a/vela-templates/definitions/internal/trait/env.cue b/vela-templates/definitions/internal/trait/env.cue index d8bf75e84..1d24646ed 100644 --- a/vela-templates/definitions/internal/trait/env.cue +++ b/vela-templates/definitions/internal/trait/env.cue @@ -39,7 +39,7 @@ template: { }] } if _baseEnv != _|_ { - _baseEnvMap: {for envVar in _baseEnv {"\(envVar.name)": envVar.value}} + _baseEnvMap: {for envVar in _baseEnv {"\(envVar.name)": envVar}} // +patchStrategy=replace env: [ for envVar in _baseEnv if _delKeys[envVar.name] == _|_ && !_params.replace { name: envVar.name @@ -47,11 +47,15 @@ template: { value: _params.env[envVar.name] } if _params.env[envVar.name] == _|_ { - value: envVar.value + if envVar.value != _|_ { + value: envVar.value + } + if envVar.valueFrom != _|_ { + valueFrom: envVar.valueFrom + } } }] + [ for k, v in _params.env if _delKeys[k] == _|_ && (_params.replace || _baseEnvMap[k] == _|_) { - name: k - value: v + v }] } }