Helm 插件(helm/v1-alpha

Helm 插件是一个可选插件,用于脚手架生成 Helm Chart,便于你通过 Helm 分发项目。

在默认脚手架下,用户可以先生成包含全部清单的打包文件:

make build-installer IMG=<some-registry>/<project-name:tag>

随后,项目使用者可以直接应用该打包文件安装:

kubectl apply -f https://raw.githubusercontent.com/<org>/project-v4/<tag or branch>/dist/install.yaml

不过在很多场景,你可能更希望提供 Helm Chart 的分发方式。这时就可以使用本插件在 dist 目录下生成 Helm Chart。

何时使用

  • 你希望向用户提供 Helm Chart 来安装和管理你的项目。
  • 你需要用最新的项目变更同步更新 dist/chart/ 下已生成的 Helm Chart:
    • 生成新清单后,使用 edit 子命令同步 Helm Chart。
    • 重要:如果你通过 DeployImage 插件创建了 Webhook 或 API, 需在(运行过 make manifests 之后)使用 --force 标志执行 edit,以基于最新清单重新生成 Helm Chart 的 values; 若你曾定制过 dist/chart/values.yamltemplates/manager/manager.yaml,则在强制更新后需要手动把你的定制重新套上去。

如何使用

基本用法

Helm 插件挂载在 edit 子命令上,因为 helm/v1-alpha 依赖于先完成 Go 项目的脚手架。


# 初始化一个新项目
kubebuilder init

# 在已有项目上启用/更新 Helm Chart(先生成 config/ 下的清单)
make manifests
kubebuilder edit --plugins=helm/v1-alpha

子命令

Helm 插件实现了以下子命令:

  • edit($ kubebuilder edit [OPTIONS]

影响的文件

本插件会创建或更新以下脚手架:

  • dist/chart/*