helm 使用运维技巧(一)
Q2:_helpers.tpl 文件
用于保存一些可以在该chart中复用的模板
一个名为 _helpers.tpl 的文件通常用于定义 Go 模板助手,语法如下:
{{- define "yourFnName" -}}{{- printf "%s-%s" .Values.name .Values.version | trunc 63 -}}{{- end -}}然后您可以在 *.yaml 资源文件中使用它,如下所示:
{{ template "yourFnName" . }}
Q1:直接渲染出结果
通过: set list 查看是否格式字符不对
helm template pkslow-nginx/ --output-dir ./result
指定dev环境的配置
helm template pkslow-nginx/ --output-dir ./result -f pkslow-nginx/values-dev.yaml
#带debug模式
helm template meng-frontend/ --debug --output-dir ./result
helm template meng-frontend/ --output-dir ./result -f meng-frontend/values-dev.yaml
##
helm template meng/ --output-dir ./result
#取决于values.yaml 中对其他yaml文件是否开启enabled加载
如:
helm template umi-mo/ --output-dir ./result -f umi-mo/values-dev.yaml
原因:configmap.yaml pvc.yaml 未解析出来,values.yaml中配置
persistence:
enabled: false
config:
enabled: false
假如将上述配置文件参数修改为:true
再执行命令:
#解析后的文件,有参数未引入替换
如:service.yaml
app.kubernetes.io/instance: release-name
查看_helpers.tpl文件
{{/*
Selector labels
*/}}
{{- define "meta-app.selectorLabels" -}}
app.kubernetes.io/name: {{ include "meta-app.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
原因:helm template 未带发布安装名称,故未解析到 .Release.Name
可以使用 helm install 方式替换查看验证 (需要能够连接到k8s api-server)
helm install t1 --dry-run --debug umi-mo