
helm-docs是一个从Helm图表自动生成Markdown文档的工具。生成的文档包含图表元数据以及所有图表值的表格,包括默认值和从注释中解析的可选描述。文档生成完全由gotemplate驱动,工具会解析图表元数据并生成多个子模板,可在模板文件(默认README.md.gotmpl)中引用。若未提供模板文件,工具将使用默认内部模板生成格式合理的README。
Chart.yaml和values.yaml提取信息,生成结构化Markdown文档README.md.gotmpl).helmdocsignore文件,用于排除不需要处理的图表目录values.yaml配置保持同步bashbrew install norwoodj/tap/helm-docs
此命令将下载并安装工具的https://github.com/norwoodj/helm-docs/releases/latest%E3%80%82
bashcd cmd/helm-docs go build
在目录中或递归地为所有Helm图表生成文档并输出到README:
bashhelm-docs # 或 helm-docs --dry-run # 将生成的文档打印到stdout而非修改README
工具会递归搜索当前目录的子目录中的Chart.yaml文件,并为找到的每个图表生成文档。
工具生成的模板如下,可在README.md.gotmpl文件中通过{{ template "template-name" . }}引用:
| 名称 | 描述 |
|---|---|
| chart.header | 生成的Markdown文件的主标题 |
| chart.description | 包含图表Chart.yaml中description字段的描述行,若未设置则为空 |
| chart.version | 图表Chart.yaml中的version字段 |
| chart.versionLine | 说明图表当前版本的文本行 |
| chart.type | 图表Chart.yaml中的type字段 |
| chart.typeLine | 说明图表当前类型的文本行 |
| chart.sourceLink | 图表Chart.yaml中的home链接,若未设置则为空 |
| chart.sourceLinkLine | 包含图表Chart.yaml中home链接的文本行,若未设置则为空 |
| chart.requirementsHeader | 图表依赖部分的标题 |
| chart.requirementsTable | 图表所需子图表的表格 |
| chart.requirementsSection | 包含requirementsTable的依赖部分(若无可依赖项则为空) |
| chart.valuesHeader | 图表值部分的标题 |
| chart.valuesTable | 从values.yaml解析的图表值表格 |
| chart.valuesSection | 包含valuesTable的值部分(若无可值则为空) |
默认模板
若不存在README.md.gotmpl(或其他指定的模板文件),将使用默认模板生成README:
{{ template "chart.header" . }} {{ template "chart.description" . }} {{ template "chart.versionLine" . }} {{ template "chart.sourceLinkLine" . }} {{ template "chart.requirementsSection" . }} {{ template "chart.valuesSection" . }}
helm-docs支持.helmdocsignore文件(类似.gitignore),可指定搜索图表时要忽略的目录。被指定的目录无需是图表本身,因此包含多个图表的父目录可被忽略,其下所有图表均不处理。也可直接引用Chart.yaml文件以跳过特定图表。
工具可从values.yaml文件解析值的描述和默认值。默认值直接从YAML中提取,描述可通过特定格式的注释添加。
基本注释格式
在文件中通过以下格式的注释为参数添加描述:
yamlcontroller: publishService: # controller.publishService.enabled -- 是否将ingress控制器暴露给公网 enabled: false # controller.replicas -- 负载均衡的nginx-ingress pod数量。 # 不要设置为小于2的值。 replicas: 2
注释可跨多行,后续行无需双破折号,将自动以空格连接。
值表生成规则
int、string、float、bool、空列表和空映射的字段)到值表,即使它们没有描述注释示例:
yamlcontroller: # controller.livenessProbe -- 配置ingress控制器的健康检查 livenessProbe: httpGet: # controller.livenessProbe.httpGet.path -- 健康检查端点 path: /healthz port: http
生成的值表:
| Key | Type | Default | Description |
|---|---|---|---|
| controller.livenessProbe | object | {"httpGet":{"path":"/healthz","port":8080}} | 配置ingress控制器的健康检查 |
| controller.livenessProbe.httpGet.path | string | "/healthz" | 健康检查端点 |
若移除controller.livenessProbe的注释:
yamlcontroller: livenessProbe: httpGet: # controller.livenessProbe.httpGet.path -- 健康检查端点 path: /healthz port: http
生成的值表:
| Key | Type | Default | Description |
|---|---|---|---|
| controller.livenessProbe.httpGet.path | string | "/healthz" | 健康检查端点 |
| controller.livenessProbe.httpGet.port | string | "http" |
nil值处理
若需定义键但保留默认值为空,可指定描述和类型:
yamlcontroller: # controller.replicas -- (int) 负载均衡的nginx-ingress pod数量 replicas:
自定义默认值列
若不想使用values.yaml中的默认值,或实际默认值在图表内部计算,可通过@default注释修改默认值列:
yamlservice: # service.annotations -- 为服务添加注释 # @default -- 图表将自动添加一些内部注释 annotations: []
注意:键的注释必须在第一行,@default注释需紧随其后。
含特殊字符的键
若键名包含.或空格,注释中需将该部分用引号括起:
yamlservice: annotations: # service.annotations."external-dns.alpha.kubernetes.io/hostname" -- 分配给服务ELB的主机名 external-dns.alpha.kubernetes.io/hostname: stupidchess.jmn23.com configMap: # configMap."not real config param" -- 示例用的假配置参数 not real config param: value
若要通过pre-commit钩子自动生成README.md文件,需先安装pre-commit二进制文件,并在项目中添加https://github.com/norwoodj/helm-docs/blob/master/.pre-commit-config.yaml%EF%BC%8C%E7%84%B6%E5%90%8E%E8%BF%90%E8%A1%8C%EF%BC%9A
bashpre-commit install pre-commit install-hooks
之后,对图表的requirements.yaml、values.yaml或Chart.yaml文件的修改将在提交时触发文档更新。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务