AutoUpdate(autoupdate/v1-alpha)
让你的 Kubebuilder 项目与最新改进保持同步不应该是件苦差事。经过少量设置,每当有新的 Kubebuilder 版本可用时,你都可以收到自动 Pull Request 建议——让项目保持维护良好、安全,并与生态变化保持一致。
该自动化使用带“三方合并策略”的 kubebuilder alpha update 命令来刷新项目脚手架,并通过一个 GitHub Actions 工作流包装:它会打开一个带 Pull Request 对比链接的 Issue,方便你创建 PR 并进行审阅。
何时使用
- 当你的项目没有过多偏离默认脚手架(请务必阅读此处的自定义注意事项:https://book.kubebuilder.io/versions_compatibility_supportability#project-customizations)
- 当你希望降低保持项目更新与良好维护的负担
- 当你希望借助 AI 的指引,了解保持项目最新所需的变更并解决冲突
如何使用
- 为现有项目添加
autoupdate插件:
kubebuilder edit --plugins="autoupdate.kubebuilder.io/v1-alpha"
- 创建启用
autoupdate插件的新项目:
kubebuilder init --plugins=go/v4,autoupdate/v1-alpha
工作原理
该操作会生成一个运行 kubebuilder alpha update 命令的 GitHub Actions 工作流。每当有新版本发布时,工作流都会自动打开一个带 PR 对比链接的 Issue,方便你创建 PR 并进行审阅,例如:
默认情况下,生成的工作流会使用 --use-gh-models 参数以利用 AI models 帮助你理解所需变更。你会获得一份简洁的变更文件列表,以加快审阅,例如:
如发生冲突,AI 生成的评论会指出并提供后续步骤,例如:
工作流细节
该工作流每周检查一次新版本;如有新版本,将创建带 PR 对比链接的 Issue,以便你创建 PR 并审阅。工作流调用的命令如下:
# 更多信息参见:https://kubebuilder.io/reference/commands/alpha_update
- name: Run kubebuilder alpha update
run: |
# 使用指定参数执行更新命令。
# --force:即使出现冲突也完成合并,保留冲突标记
# --push:将结果分支自动推送到 'origin'
# --restore-path:在 squash 时保留指定路径(例如 CI 工作流文件)
# --open-gh-issue:创建 Issue
# --use-gh-models:在创建的 Issue 中添加 AI 生成的评论,给出脚手架变更概览及(如有)冲突解决指引
kubebuilder alpha update \
--force \
--push \
--restore-path .github/workflows \
--open-gh-issue \
--use-gh-models
