我想在同一个存储库中维护一些 Helm 图表,这些图表在各自的requirements.yaml
文件中相互引用。这些图表应该如何引用彼此的相对路径?
对于本地开发,我可以使用file://
如下协议
name: chart-name
repository: file://../chart-name
Run Code Online (Sandbox Code Playgroud)
但是,当我移动到托管存储库时,我将需要更改此设置。我希望这个图表目录不需要将其最终位置烘焙到其repository.yaml 文件中。这可能吗?
当您移动到托管存储库时,您是否不必发布每个图表?如果是这样,只要您没有循环依赖关系,就可以将每个图表按依赖顺序发布到托管存储库,然后更新requirements.yaml。
即如果您有 3 个图表 A、B 和 C。
将 A 发布到托管存储库,更新 B 的要求以指向 A 的托管存储库名称,然后发布 B 并对 C 重复更新过程。
我正在做类似的事情,但我不使用托管存储库。我已经有了一个大型的 Ansible 设置,因此我编写了一个直接从目录安装图表的角色。有一个 git 存储库包含我的所有(当前 7 个)图表,并且减去运行 helm 服务器是一个类似的过程。明显的缺点是手动更新需求,但我不确定是否还有其他选择。
编辑
有点 hacky 但可以工作:
为了避免编辑依赖项,一种方法是在本地运行图表存储库。如果您的存储库位于charts.domain.com
,请像往常一样添加对此的依赖项
dependencies:
- name: my-chart
repository: http://charts.domain.com
version: 0.0.1
Run Code Online (Sandbox Code Playgroud)
charts.domain.com
然后,当您在本地开发时,向您的主机文件添加一个指向您的图表的条目localhost
。
示例工作流程可能类似于:
mkdir my-charts
mv my-char-a-0.0.1.tgz my-charts/
helm repo index my-charts/ --url http://charts.domain.com
Run Code Online (Sandbox Code Playgroud)
现在提供从本地主机生成的索引/存储库。这样您的依赖始终是charts.domain.com
根据您使用的远程主机,当您愿意发布时,您可以将此本地索引同步到远程主机,这样就可以减少本地和远程主机出现分歧的机会。
再次需要注意的是,您需要启用禁用此主机条目,具体取决于您是否正在开发或想要使用实时存储库。您始终可以编写主机文件条目编辑的脚本。
归档时间: |
|
查看次数: |
4746 次 |
最近记录: |