0Pricing
Helm Academy · 课时

Files、Template 与根上下文

访问打包的文件和点作用域

Files、Template 与根上下文 是 CoddyKit 上的免费 Helm Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Helm Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Helm Academy 课程共包含 4 节课。

根上下文:点号

在模板顶部,点号 . 是根上下文,包含所有内置对象:.Values、.Release、.Chart 等。

点号可以改变作用域

with 和 range 之类的代码块会将点号重新绑定到范围更小的值。因此,在每个代码块中,. 不一定都表示根上下文。

使用美元符号访问根上下文

变量 $ 始终指向原始根上下文。在 range 或 with 内部,使用 $ 可以返回并访问 .Values 或 .Release。

{{ range .Values.ports }}
release: {{ $.Release.Name }}
{{ end }}

Files 对象

.Files 允许模板读取 chart 中捆绑的非模板文件,例如您想要放入 ConfigMap 的配置文件。📄

将文件作为文本读取

.Files.Get 会以字符串形式返回文件内容。传入相对于 chart 根目录的路径,即可将文件内容提取到清单中。

data:
  app.conf: |
{{ .Files.Get "config/app.conf" | indent 4 }}

Files 有一些限制

.Files 无法读取所有内容:templates/ 和 Chart.yaml 会被排除,而 .helmignore 中的匹配项也会在打包时跳过。

匹配多个文件

.Files.Glob 会根据模式匹配多个文件,并返回一个映射。您可以遍历它,一次构建多个 ConfigMap 条目。

{{ range $path, $bytes := .Files.Glob "config/*" }}...{{ end }}

编码文件内容

二进制数据或机密数据应进行 base64 编码。将 .Files.Get 与 b64enc 链接起来,即可安全地将其嵌入 Secret 资源。

ca.crt: {{ .Files.Get "certs/ca.crt" | b64enc }}

Template 对象

.Template 对象描述当前正在渲染的文件。.Template.Name 是该文件的路径,可用于注释和错误消息。

# rendered from {{ .Template.Name }}

BasePath 指向模板目录

.Template.BasePath 提供当前 chart 的模板目录路径。它与 .Template.Name 配合使用,可以定位当前模板。

将根上下文传入辅助模板

命名模板只能看到您传给它们的上下文。传入 $ 或根点号,可以确保辅助模板仍能访问 .Values 和 .Release。

{{ include "mychart.labels" $ }}

快速检查

您正在一个范围循环中,其中点号已重新绑定到列表项。

回顾:文件与根上下文

您了解到点号就是根上下文,$ 始终可以访问它,而 .Files 和 .Template 可以让您嵌入捆绑的文件并定位当前模板。

常见问题解答

「Files、Template 与根上下文」课时是免费的吗?

是的 — 「Files、Template 与根上下文」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Helm Academy 课程的其余内容,请升级到 CoddyKit PRO。 Helm Academy 课程共包含 4 节课。

「Files、Template 与根上下文」这节课中我会学到什么?

访问打包的文件和点作用域 你通过在浏览器中直接运行的动手代码来练习 Helm Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Helm Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Helm Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「Files、Template 与根上下文」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Helm Academy 课中编写并运行代码吗?

能。每节 Helm Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. Values 对象与嵌套访问
  2. 通过 .Release 获取 Release 元数据
  3. Chart 与 Capabilities 对象
  4. Files、Template 与根上下文
← 返回 Helm Academy