Helm 将额外的元素传递给数组
Helm pass extra elements to an array
所以我有一个 Helm 模板:
spec:
containers:
- name: {{ .Values.dashboard.containers.name }}
image: {{ .Values.dashboard.containers.image.repository }}:{{ .Values.dashboard.containers.image.tag }}
imagePullPolicy: Always
env:
- name: BASE_PATH
value: /myapp/web
我想给它传递额外的环境变量
我的values.yaml
:
extraEnvs:
- name: SOMETHING_ELSE
value: hello
- name: SOMETHING_MORE
value: world
我该怎么做才能得到这样的结果?
spec:
containers:
- name: {{ .Values.dashboard.containers.name }}
image: {{ .Values.dashboard.containers.image.repository }}:{{ .Values.dashboard.containers.image.tag }}
imagePullPolicy: Always
env:
- name: BASE_PATH
value: /myapp/web
- name: SOMETHING_ELSE
value: hello
- name: SOMETHING_MORE
value: world
我在想这样的事情:
{{- if .Values.extraEnvs}}
env: -|
{{- range .Values.extraEnvs }}
- {{ . | quote }}
{{- end }}
{{- end -}}
但这会覆盖之前的设置
只需从钻头上取下 env:
。
env:
- name: BASE_PATH
value: /myapp/web
{{- if .Values.extraEnvs}}
{{- range .Values.extraEnvs }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}
{{- end -}}
您也可以使用评论中提到的 toYaml
而不是自己迭代。
toYaml
方式:
spec:
containers:
- name: {{ .Values.dashboard.containers.name }}
image: {{ .Values.dashboard.containers.image.repository }}:{{ .Values.dashboard.containers.image.tag }}
imagePullPolicy: Always
env:
- name: BASE_PATH
value: /myapp/web
{{- toYaml .Values.extraEnvs | nindent 10 }}
nindent 10
用于正常部署,您可能需要更改为您自己的。
所以我有一个 Helm 模板:
spec:
containers:
- name: {{ .Values.dashboard.containers.name }}
image: {{ .Values.dashboard.containers.image.repository }}:{{ .Values.dashboard.containers.image.tag }}
imagePullPolicy: Always
env:
- name: BASE_PATH
value: /myapp/web
我想给它传递额外的环境变量
我的values.yaml
:
extraEnvs:
- name: SOMETHING_ELSE
value: hello
- name: SOMETHING_MORE
value: world
我该怎么做才能得到这样的结果?
spec:
containers:
- name: {{ .Values.dashboard.containers.name }}
image: {{ .Values.dashboard.containers.image.repository }}:{{ .Values.dashboard.containers.image.tag }}
imagePullPolicy: Always
env:
- name: BASE_PATH
value: /myapp/web
- name: SOMETHING_ELSE
value: hello
- name: SOMETHING_MORE
value: world
我在想这样的事情:
{{- if .Values.extraEnvs}}
env: -|
{{- range .Values.extraEnvs }}
- {{ . | quote }}
{{- end }}
{{- end -}}
但这会覆盖之前的设置
只需从钻头上取下 env:
。
env:
- name: BASE_PATH
value: /myapp/web
{{- if .Values.extraEnvs}}
{{- range .Values.extraEnvs }}
- name: {{ .name }}
value: {{ .value }}
{{- end }}
{{- end -}}
您也可以使用评论中提到的 toYaml
而不是自己迭代。
toYaml
方式:
spec:
containers:
- name: {{ .Values.dashboard.containers.name }}
image: {{ .Values.dashboard.containers.image.repository }}:{{ .Values.dashboard.containers.image.tag }}
imagePullPolicy: Always
env:
- name: BASE_PATH
value: /myapp/web
{{- toYaml .Values.extraEnvs | nindent 10 }}
nindent 10
用于正常部署,您可能需要更改为您自己的。