0Pricing
DevOps Bootcamp · 课时

在本地覆盖库的默认值

为每个使用者自定义共享模板

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

共享但不僵化

优秀的库会设置合理的默认值,同时允许每个使用方进行调整。主要的调节手段是局部模板在渲染时读取的值。

通过值控制行为

由于局部模板会读取 .Values,您的 Chart 只需在自己的 values.yaml 中设置相应的键,就能自定义共享输出。

# your values.yaml
image:
  repository: nginx
  tag: "1.27"

库依赖默认值

编写良好的局部模板会将读取操作包装在默认值函数中,因此未设置的值可以平稳地回退,而不会渲染为空。

replicas: {{ .Values.replicaCount | default 1 }}

仅覆盖该键

要更改一个默认值,只需在您的值中设置该键即可。库会保留其他所有回退值,因此您只覆盖所需的最少内容。

# your values.yaml
replicaCount: 3

覆盖整个局部模板

需要进行更大的更改吗?请在您自己的图表中重新定义这个具名模板。同名模板的最后一次定义会生效,因此您的版本会替换库中的版本。

{{- define "common.labels" -}}
team: payments
{{- end -}}

最后定义优先

当两个图表定义了相同的模板名称时,Helm 会使用最后加载的那个模板。您的应用程序图表可以有意覆盖库中的局部模板。

包装而不是替换

通常,更简洁的做法是:定义一个新的局部模板,先包含库中的局部模板,再追加您需要的字段。这样既能扩展功能,又不会丢失上游逻辑。

{{- define "app.labels" -}}
{{ include "common.labels" . }}
tier: backend
{{- end -}}

传入自定义作用域

不要传入根点,而是向局部模板传入一个缩小后的上下文,使其从值的某个子树中读取内容,并在每次调用时调整输出。

{{ include "common.resources" .Values.web }}

构建合并上下文

如需更精细的控制,可以构建一个混合根上下文和覆盖项的dict,然后将其传入。局部模板看到的正是您组装出的那些值。

{{ include "common.tpl" (dict "top" . "name" "web") }}

确认覆盖已生效

完成覆盖后,请务必运行helm template,确认您的值或重新定义的局部模板生成了预期的清单。

helm template my-release . | grep replicas

尽量保持覆盖最小化

请先依赖值,只有在必要时才重新定义局部模板。小范围的本地覆盖可以让您的图表与库的升级保持一致。

快速检查

您的图表及其库都定义了 common.labels。Helm 实际使用的是哪个定义?

回顾:本地覆盖

请先通过值自定义库;需要时再重新定义或包装局部模板,传入自定义作用域,最后使用 helm template 进行验证。✅

常见问题解答

「在本地覆盖库的默认值」课时是免费的吗?

是的 — 「在本地覆盖库的默认值」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「在本地覆盖库的默认值」这节课中我会学到什么?

为每个使用者自定义共享模板 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

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

「在本地覆盖库的默认值」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 声明库图表类型
  2. 导出可复用的命名模板
  3. 将库作为依赖使用
  4. 在本地覆盖库的默认值
← 返回 DevOps Bootcamp