gpt4 book ai didi

kubernetes-helm - 如何引用同一存储库中的 helm chart

转载 作者:行者123 更新时间:2023-12-02 02:59:01 27 4
gpt4 key购买 nike

我想在同一个存储库中维护一些 Helm 图表,这些图表在各自的 requirements.yaml 文件中相互引用。这些图表应该如何引用彼此的相对路径?

对于本地开发,我可以使用 file:// 协议(protocol)

name: chart-name
repository: file://../chart-name

然而,当我移动到托管存储库时,我将需要更改它。我希望这个图表目录不需要将其最终位置烘焙到其 repository.yaml 文件中。这可能吗?

最佳答案

当您迁移到托管存储库时,您是否不必发布每个图表?如果是这样,只要您没有循环依赖项,请按依赖顺序将每个图表发布到您的托管存储库,然后更新 requirements.yaml。

即如果你有 3 个图表 A、B 和 C。

  1. A 不依赖于 B 和 C
  2. B 依赖于 A
  3. C 依赖于 B

将 A 发布到托管仓库,更新 B 的要求以指向 A 的托管仓库名称,然后发布 B 并为 C 重复更新过程。

我正在做类似的事情,但我不使用托管存储库。我已经有一个大型的 Ansible 设置,所以我写了一个直接从目录安装图表的角色。有一个包含所有(目前 7 个)我的图表的 git 存储库,这个减去运行 helm 服务器是一个类似的过程。明显的缺点是需要手动更新需求,但我不确定是否还有其他选择。

编辑

有点hacky但可以工作:

要避免编辑依赖项,一种方法是在本地运行图表存储库。如果您的存储库在 charts.domain.com 可用,请照常向其添加依赖项

dependencies:
- name: my-chart
repository: http://charts.domain.com
version: 0.0.1

然后,当您在本地开发时,将一个条目添加到您的主机文件中,该文件将 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

现在提供从本地主机生成的索引/存储库。这样你的依赖总是对 charts.domain.com

根据您使用的远程主机,您可以在高兴地发布时将此本地索引同步到您的远程主机,这样可以减少本地和远程主机出现分歧的可能性。

再次提醒,您需要启用禁用此主机条目,具体取决于您是在开发还是想使用实时存储库。您始终可以编写编辑主机文件条目的脚本。

关于kubernetes-helm - 如何引用同一存储库中的 helm chart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47640656/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com