我有两个图表:
frontend
和backend
,它们都依赖于mylib
(一个库图表)。库图表具有 backend
和 frontend
图表使用的通用模板。 backend
和 frontend
每个都有特定于其图表的 value.yaml 文件。
我还需要为我们部署到的每个堆栈(开发、暂存、生产)提供一个单独的值文件,该文件与默认的
values.yaml
文件合并。我想在前端和后端图表之间共享这些值文件,而不在两个地方维护自定义值文件。然而,每个图表都是构建并发布到单独的 Helm 存储库的。
我想也许我可以将这些值文件放在库图表中并在安装图表时引用它们。例如:
helm install test-service myservice --values values.yaml --values mylib/stack-values/values-dev.yaml
我尝试了所有路径变体来引用库图表中的
values-dev.yaml
文件,但都失败了。我相信通过 --values
参数引用库图表中的文件可能存在限制。
有没有办法实现我在多个图表之间共享
values-*.yaml
文件的目标,而不必将其构建到每个图表中?
我的目录结构如下所示,但后端和前端图表是构建并发布到单独的 Helm 存储库的:
├── backend
│ ├── Chart.yaml
│ ├── charts
│ │ └── mylib-0.4.11.tgz
│ ├── templates
│ └── values.yaml
├── frontend
│ ├── Chart.yaml
│ ├── charts
│ │ └── mylib-0.4.11.tgz
│ ├── templates
│ └── values.yaml
├── mylib
│ ├── Chart.yaml
│ ├── stack-values
│ │ ├── values-dev.yaml
│ │ └── values-loadtest.yaml
│ └── templates
您可以通过
--set-file extraValues
包含其他文件
helm install mychart ./mychart --set-file extraValues=./path/to/yourfile.yaml
并在各处使用公共变量。