分配模板变量
捕获值,以便在块中重复使用
分配模板变量 是 CoddyKit 上的免费 Helm Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Helm Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Helm Academy 课程共包含 4 节课。
变量的作用
当同一个值在模板中多次出现时,请将它只捕获到一个变量中,这样就不必到处重复冗长的路径。
赋值语法
您可以使用美元符号名称和冒号等号运算符声明变量。在 Helm 中,$name 保存右侧表达式的结果。
{{ $name := .Values.appName }}变量以美元符号开头
每个模板变量都必须以美元符号开头。Helm 就是通过这一点将变量与点号上下文中的字段区分开来。
读取变量
完成赋值后,您可以像使用任何值一样将变量放入 YAML 中。无论您在哪里写入 $name,Helm 都会替换为捕获的结果。
metadata:
name: {{ $name }}捕获内置对象
变量特别适合保存冗长的表达式。将发布名称保存一次,之后就可以重复使用简短的变量,而不必再次输入完整路径。
{{ $rel := .Release.Name }}
name: {{ $rel }}-config先用 :=,再用 =
只有在首次声明变量时才使用冒号等号。要在同一作用域中稍后修改它的值,请使用普通等号重新赋值。
{{ $count := 1 }}
{{ $count = 3 }}作用域随代码块而定
变量只存在于声明它的代码块中。在 if 或 range 之前定义变量后,它在该代码块内部都会保持可见。
超出作用域,无法访问
如果在 if 代码块内声明变量,代码块结束后它就会消失。在那个作用域之外,Helm 完全无法看到它。
清晰地命名变量
请选择简短且有描述性的名称,例如 $fullName 或 $port。清晰的变量名称能让团队成员更容易阅读模板。
变量与点号
进入代码块后点号可能会改变,但变量会保留捕获的值。这种稳定性正是变量如此有用的原因。
从表达式赋值
赋值的右侧可以是任何表达式,包括管道表达式。Helm 会运行它一次,并将结果保存到变量中。
{{ $port := .Values.port | default 8080 }}快速检查
您之前已经在模板中写入了 {{ $svc := .Values.service.name }}。
回顾
现在您可以使用 := 声明变量,使用 = 重新赋值,通过美元符号读取变量,并遵守代码块作用域。整洁的模板即将到来!🎯
常见问题解答
「分配模板变量」课时是免费的吗?
是的 — 「分配模板变量」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Helm Academy 课程的其余内容,请升级到 CoddyKit PRO。 Helm Academy 课程共包含 4 节课。
「分配模板变量」这节课中我会学到什么?
捕获值,以便在块中重复使用 你通过在浏览器中直接运行的动手代码来练习 Helm Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Helm Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Helm Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「分配模板变量」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Helm Academy 课中编写并运行代码吗?
能。每节 Helm Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。