Chart 与 Capabilities 对象
Chart 元数据与集群 API 版本检查
Chart 与 Capabilities 对象 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
另外两个内置对象
除了 .Values 和 .Release,Helm 还提供用于 chart 元数据的 .Chart,以及用于获取目标集群信息的 .Capabilities。
Chart 对象映射 Chart.yaml
.Chart 就是暴露给模板的 Chart.yaml 内容。您在其中写入的每个字段都可以在渲染期间读取。📦
Chart 名称和版本
.Chart.Name 和 .Chart.Version 提供 chart 的身份信息。Version 是 chart 自身的 SemVer,每次发布时都会递增。
chart: {{ .Chart.Name }}-{{ .Chart.Version }}AppVersion 不同
.Chart.AppVersion 是正在部署的应用版本,而不是 chart 版本。它通常用于指定默认镜像标签和资源标签。
app.kubernetes.io/version: {{ .Chart.AppVersion }}字段名称使用大写形式
Chart.yaml 使用小写键,但对象会将它们改为首字母大写的形式。即使文件中写的是 appVersion,您也要写 .Chart.AppVersion。
Capabilities 对象
.Capabilities 描述 Helm 正在连接的集群:包括 Kubernetes 版本以及可用的 API 组。
检查 Kubernetes 版本
.Capabilities.KubeVersion 报告集群版本。chart 可以利用它适配较新或较旧的 Kubernetes 版本。
# {{ .Capabilities.KubeVersion.Version }}测试 API 版本是否存在
.Capabilities.APIVersions.Has 会检查集群中是否存在某个 API,从而让您安全地选择正确的资源类型。
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}...{{ end }}Capabilities 为什么有助于可移植性
不同集群的版本和已安装 API 各不相同。根据 .Capabilities 进行判断,可以让同一个 chart 在多种集群配置中正确渲染。
Capabilities 与 helm template
在离线运行时,helm template 无法查询真实集群,因此会假定一个默认版本。传入 --kube-version 可以模拟特定目标。
helm template ./mychart --kube-version 1.29使用 Chart 添加标签,使用 Capabilities 控制逻辑
一个实用规则是:为标签添加身份信息时读取 .Chart,决定要生成哪种清单结构时检查 .Capabilities。
快速检查
您需要使用正在部署的应用版本为资源添加标签。
回顾:Chart 和 Capabilities
您已经了解到,.Chart 会暴露 Chart.yaml 中的 Name、Version 和 AppVersion 等元数据,而 .Capabilities 会报告集群版本和可用 API。
常见问题解答
「Chart 与 Capabilities 对象」课时是免费的吗?
是的 — 「Chart 与 Capabilities 对象」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「Chart 与 Capabilities 对象」这节课中我会学到什么?
Chart 元数据与集群 API 版本检查 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「Chart 与 Capabilities 对象」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Values 对象与嵌套访问
- 通过 .Release 获取 Release 元数据
- Chart 与 Capabilities 对象
- Files、Template 与根上下文