所以我正在创建一个由不同组件组成的系统,这些组件通过 helm 图表安装。由于我需要对每个图表进行不同的定制,因此我创建了自己的独立存储库,将图表复制到那里并添加了定制。
问题是:如何方便地升级图表版本,同时保持自定义?
对于某些组件来说,这是一项简单的任务,因为自定义模板已移动到不同的文件夹,需要升级时,我只需将旧文件替换为新文件即可。
问题是在某些图表中我需要直接更改原始文件,例如在模板中间添加必要的东西。因此,在升级此类组件期间,我必须遍历所有文件,比较它们,记住哪些更改是我的,然后更新整个存储库。所以是的,你猜对了——它是手动的、不方便的和错误的修剪任务。
我尝试寻找如何维护此类存储库的良好实践,但我找不到任何答案,所以我非常乐意接受任何建议。
不幸的是,应用程序的 Helm Chart 存储库经常不适合您要安装它们的环境。
我建议按照模板的编写方式修改模板,并将 PR 发送到应用程序的 GitHub 存储库。
除非这些是“合理的”配置,例如由于某种原因使应用程序复杂化的东西,否则除了在下载更新的 repo 之前执行“git diff”之外别无他法。
如果您的更改非常针对您的项目,而不是可以合并到原始 repo 中的内容,或者您有法律漏洞可以跳过,您可以分叉原始代码并定期与上游同步。
显然您仍然需要解决冲突,但是您可以设置一个 CI 管道来定期同步和更新您的 helm 注册表。