我正在开发舵图。每个图表都有多个依赖项,这些依赖项在 Chart.yaml 中声明为依赖项。注册表字段必须指向私有注册表。但是,我必须将图表部署在具有不同可用私有注册表的不同环境中。 目前,我必须为每个环境创建一个 helm 图表,以便为依赖项设置正确的注册表。
示例:
MyChart 的 Chart.yaml:
dependencies:
- name: aChart
version: x.x.x
repository: registryA
MyChart 的 Chart.yaml:
dependencies:
- name: aChart
version: x.x.x
repository: registryB
我只想使用一次 MyChart 并动态设置/操作存储库字段。有谁知道我怎样才能做到这一点?也许定制?
您可以使用
condition
到 enable/disable
依赖关系图Chart.yaml
文件中将包含几个依赖项
dependencies:
- name: aChart
version: x.x.x
repository: registryA
condition: aChart.enabled
alias: aChart
- name: aChart
version: x.x.x
repository: registryB
condition: bChart.enabled
alias: bChart
然后,您可以在整个环境中使用此
chart
,并且在每个环境的文件values.yaml
中将仅启用必要的依赖项。
举个例子
values-A.yaml
aChart:
enabled: true
...
...
...
bChart:
enabled: false
values-B.yaml
aChart:
enabled: false
bChart:
enabled: true
...
...
...