使用 if 和 else 的条件块
仅在完成配置时渲染资源
使用 if 和 else 的条件块 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
仅在需要时渲染
有时只有在用户提出请求时才应该显示某个资源。Helm 允许您将这段 YAML 放入条件语句中,按需进行渲染。
if 动作
if 块以 {{ if SOMETHING }} 开始,并以 {{ end }} 结束。中间的所有内容只有在条件为真时才会渲染。
{{ if .Values.ingress.enabled }}
# ingress yaml here
{{ end }}由值驱动
条件通常是用户设置的某个值。在 values.yaml 中将 ingress.enabled 设为 true,包裹其中的清单就会立即出现。
ingress:
enabled: true始终使用 end 关闭
每个 if 都必须与 {{ end }} 配对。如果忘记它,Helm 在尝试渲染 chart 时就会抛出未终止块错误。
添加 else
需要备用分支?请添加 {{ else }} 分支。条件为真时 Helm 渲染第一个块,否则渲染 else 块。
{{ if .Values.tls }}
protocol: HTTPS
{{ else }}
protocol: HTTP
{{ end }}使用 else if 链式判断
需要处理多种情况时,请使用 {{ else if }} 链接条件。Helm 会按顺序检查每个条件,并渲染第一个条件为真的分支。
{{ if eq .Values.tier "gold" }}
replicas: 5
{{ else if eq .Values.tier "silver" }}
replicas: 3
{{ else }}
replicas: 1
{{ end }}什么算作真
除非值为空值,否则 if 的结果为真:false、零、空字符串或空列表在条件中都会被视为 false。
保护可选字段
一种常见模式是只包裹一个可选字段,而不是整个资源。在这里,只有用户为注解提供值时才会渲染它。
{{ if .Values.email }}
contact: {{ .Values.email }}
{{ end }}注意空行
if 块会在动作原本所在的位置留下空行。这些空白可能破坏 YAML,因此您很快就会学会如何将其裁剪掉。🧹
预览各个分支
使用不同的值进行渲染,观察哪个分支生效。使用 --set 的 helm template 可以让您在部署之前确认每个条件。
helm template ./mychart --set ingress.enabled=true为缺失的标志设置默认值
如果用户从未设置该标志,它会被视为空值,因此 if 会保持为 false。这就是 chart 会在 values.yaml 中为它提供合理默认值的原因。
ingress:
enabled: false快速检查
您编写了 {{ if .Values.cache }},但 chart 无法渲染。
回顾
现在您可以使用 if 控制 YAML 的生成,添加 else 和 else if 分支,并记住使用 {{ end }} 关闭块。条件渲染已解锁!🎯
常见问题解答
「使用 if 和 else 的条件块」课时是免费的吗?
是的 — 「使用 if 和 else 的条件块」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「使用 if 和 else 的条件块」这节课中我会学到什么?
仅在完成配置时渲染资源 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「使用 if 和 else 的条件块」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 使用 if 和 else 的条件块
- 条件中的真值与运算符
- 使用 range 遍历列表与映射
- 使用 with 限定块的作用域