0Pricing
DevOps Bootcamp · 课时

使用 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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 if 和 else 的条件块
  2. 条件中的真值与运算符
  3. 使用 range 遍历列表与映射
  4. 使用 with 限定块的作用域
← 返回 DevOps Bootcamp