当您使用 helm 部署某些内容时,您在
values.yml
文件上声明一个变量,并且它们将其值用作 .Value.var_name
。例如,声明我的入口域名:
domain: mydomain.com
然后用作:
kind: Ingress
...
spec:
rules:
- host: .Values.domain
现在,想象我添加 grafana 图表作为依赖项。
dependencies:
- name: grafana
repository: https://grafana.github.io/helm-charts
version: 7.0.3
此图表需要
ingress.hosts
输入,因此我在 values.yml
中将其设置为
domain: mydomain.com
grafana:
ingress:
hosts:
- mydomain.com
但是,我输入了两次
mydomain.com
,很容易出错。有什么方法可以引用values.yml
内的.Values吗?也许有模板?
可以使用yaml锚点来实现此功能。
values.yaml
domain: &domain mydomain.com
grafana:
grafana:
hosts:
- *domain
模板/cm.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test.fullname" . }}
data:
domain: {{ $.Values.domain }}
grafana: {{ $.Values.grafana.grafana.hosts[0] }}
cmd
helm install test .
输出
apiVersion: v1
data:
domain: mydomain.com
grafana: mydomain.com
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/managed-by: Helm
name: test
namespace: default