Helm Templates 是一份关于 Helm 模板与模板函数的技能资料,用于在 Helm Chart 中动态生成 Kubernetes 清单。
用途 该技能面向需要编写或维护 Helm 模板的场景,帮助使用者根据 values.yaml、发布信息和集群能力动态渲染 Kubernetes 资源清单。
主要能力 资料涵盖以下内容:
- 基础模板:通过 {{ .Values.name }}、{{ .Release.Namespace }}、{{ .Chart.Name }} 等访问值。
- 内置对象:.Values(来自 values.yaml 及覆盖值)、.Release(Name、Namespace、IsUpgrade、IsInstall)、.Chart(来自 Chart.yaml 的元数据)、.Files(访问 chart 中的非模板文件)、.Capabilities(Kubernetes 集群能力)、.Template(当前模板信息)。
- 模板函数:字符串函数(upper、lower、title、quote、trimSuffix、trimPrefix、replace)、默认值(default、required)、类型转换(toString、toJson、toYaml)、条件判断(if、and、else if)、循环(range)、命名模板(define 与 include,通常放在 _helpers.tpl)、流程控制(with、带索引的 range)、空白控制({{- 与 -}})、文件访问(.Files.Get、.Files.Glob)、高级函数(ternary、coalesce、list、append、prepend、concat、dict、set、unset、hasKey)、调试(printf 与 fail)。
- 最佳实践:为重复逻辑使用 helper、校验输入、对字符串值使用 quote。
使用方式 资料以代码片段形式展示各类模板写法,例如:
- 使用 {{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }} 设置镜像。
- 使用 {{- if .Values.ingress.enabled }} 控制资源是否渲染。
- 使用 {{- range .Values.environments }} 遍历生成环境变量。
- 使用 {{- define "mychart.labels" -}} 定义命名模板,并通过 {{- include "mychart.labels" . | nindent 4 }} 引用。
- 使用 {{ .Files.Get "config/app.conf" | indent 2 }} 读取文件内容。
- 使用 {{ fail "service.type must be ClusterIP, NodePort, or LoadBalancer" }} 进行输入校验。
适用场景 适用于编写 Helm Chart、动态生成 Kubernetes 清单、复用模板逻辑、校验 values 输入以及调试模板渲染结果等场景。
限制 资料未提供具体安装命令、收费方式、价格、平台支持范围或效果说明,这些信息暂未提供。