0Pricing
Helm Academy · 课时

使用 b64enc、toYaml 与 indent 进行编码

将结构序列化为有效清单

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

序列化结构化值

有时一个值是完整的对象,而不是字符串。toYaml 等辅助函数可以将结构转换为有效的清单片段。

使用 toYaml 渲染映射

toYaml 函数会将 values 中的映射或列表转换为格式正确的 YAML 文本。

{{ toYaml .Values.resources }}

缩进至关重要

原始的 toYaml 输出从第零列开始。在嵌套 YAML 中直接插入它会破坏文档,因此必须对其进行缩进。

使用缩进函数移动代码块

缩进函数会为代码块的每一行添加空格,使序列化输出对齐到父键下方。

{{ toYaml .Values.resources | indent 4 }}

支持换行的缩进函数

换行缩进辅助函数会在缩进前添加一个开头换行符,因此代码块会在键之后整齐地独占几行。

resources: {{ toYaml .Values.resources | nindent 4 }}

缩进与换行缩进的区别

当键与代码块位于同一行时,请紧接键使用换行缩进;当代码块已经从新的一行开始时,则使用缩进函数。

使用 Base64 编码

Kubernetes Secret 会以 Base64 编码的形式存储数据。Base64 编码辅助函数会将明文值编码为该格式。🔐

password: {{ .Values.password | b64enc }}

使用 Base64 解码

相应的反向辅助函数Base64 解码会将 Base64 解码回明文,在读取已有的编码值时非常方便。

{{ .Values.encoded | b64dec }}

编码并不等于加密

请记住,Base64 编码只能进行编码,无法提供安全保护。任何人都可以将其解码,因此它不能替代真正的密钥管理。

先为字符串加引号再编码

对于 Secret 值,通常应先使用引号函数,这样看起来像数字的字符串才能保持原样,然后再使用 b64enc 对加引号后的结果进行编码。

token: {{ .Values.token | quote | b64enc }}

综合运用

典型的代码块会组合使用这些功能:先用 toYaml 序列化,再在正确的键下使用 nindent 缩进,从而生成整洁且有效的输出。

nodeSelector: {{ toYaml .Values.nodeSelector | nindent 8 }}

快速检查

哪个辅助函数既会添加开头换行符,又会缩进代码块?

回顾

您学会了使用 toYaml 进行序列化,使用缩进和换行缩进来对齐,以及使用 b64enc 对 Secret 数据进行编码。🎉

常见问题解答

「使用 b64enc、toYaml 与 indent 进行编码」课时是免费的吗?

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

「使用 b64enc、toYaml 与 indent 进行编码」这节课中我会学到什么?

将结构序列化为有效清单 你通过在浏览器中直接运行的动手代码来练习 Helm Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Helm Academy 需要有经验吗?

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

「使用 b64enc、toYaml 与 indent 进行编码」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 通过函数传递 Values
  2. default、required 与 quote
  3. Sprig 库中的字符串辅助函数
  4. 使用 b64enc、toYaml 与 indent 进行编码
← 返回 Helm Academy