我正在尝试使用 helmfile 进行简单的 helm 配置,但没有成功。 正如提到的here(覆盖父图表中的值)我想提供一个父配置并覆盖发布值。 这是一个发布配置图
charts/microservice-a/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
labels: {{- include "microservice-a.labels" . | nindent 4 }}
name: {{ include "microservice-a.fullname" . }}-config
namespace: {{ .Release.Namespace }}
data:
MODEL.EN: {{ .Values.model.en }}
这是我的 helmfile.yaml
releases:
- name: microservice-a
chart: ../charts/microservice-a
values:
- "./environments/{{ .Environment.Name }}/values.yaml"
这是我的环境/default/values.yaml
microservice-a:
model:
en: "model-en-1.0.mdl"
我发现configmap中的
{{ .Values.model.en }}
无法reslove。
我做错了什么?
Helmfile 直接执行相当于
helm install
的操作;不存在父/子图表关系。 这意味着您的 values.yaml
文件不需要顶级 microservice-a
块。
如果您确实希望为每个服务进行单独的配置(合理),那么您可以使用
{{ .Release.Name }}
作为文件名的一部分。 例如:
# helmfile.yaml
releases:
- name: microservice-a
chart: ../charts/microservice-a
values:
- "./environments/{{ .Environment.Name }}/values-{{ .Release.Name }}.yaml"
# environments/dev/values-microservice-a.yaml
model:
en: "model-en-1.0.mdl"