我正在尝试合并具有秘密数组的多个值文件。但是合并不起作用,而是最后一个值文件覆盖。这是我的秘密模板
---
{{- range .Values.secrets }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ required "a valid name is required" .name }}
namespace: ""
type: Opaque
data:
{{- range $key, $val := .data }}
# fix printing the key name in the required string
{{ $key }}: {{ required "a valid key is required" $val }}
{{- end }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
value1.yaml:
secrets:
- name: "sample"
data:
test: "YXBpa2V5MQo="
Run Code Online (Sandbox Code Playgroud)
value2.yaml:
- name: "sample2"
data:
test: "YXBpa2V5MQo="
helm template secrets-template -f value1.yaml -f value2.yaml
Run Code Online (Sandbox Code Playgroud)
输出是
---
apiVersion: v1
kind: Secret
metadata:
name: sample2
namespace: ""
type: Opaque
data:
# fix printing the key name in the required string
test: YXBpa2V5MQo=
Run Code Online (Sandbox Code Playgroud)
但预期输出是
---
apiVersion: v1
kind: Secret
metadata:
name: sample
namespace: ""
type: Opaque
data:
# fix printing the key name in the required string
test: YXBpa2V5MQo=
---
apiVersion: v1
kind: Secret
metadata:
name: sample2
namespace: ""
type: Opaque
data:
# fix printing the key name in the required string
test: YXBpa2V5MQo=
Run Code Online (Sandbox Code Playgroud)
对此有什么帮助吗?
据我所知,helm 总是覆盖数组。解决方法是使用字典。例如,使用机密的名称作为密钥。
模板:
---
{{- range $secretName, $secretValue := .Values.secrets }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ required "a valid name is required" $secretName }}
namespace: ""
type: Opaque
data:
{{- range $key, $val := $secretValue }}
# fix printing the key name in the required string
{{ $key }}: {{ required "a valid key is required" $val }}
{{- end }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)
value1.yaml
secrets:
sample:
test: "YXBpa2V5MQo="
Run Code Online (Sandbox Code Playgroud)
value2.yaml
secrets:
sample2:
test: "YXBpa2V5MQo="
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6162 次 |
| 最近记录: |