我创建了一个图表,该图表需要来自stable/charts的头盔图表,比方说mongodb。尽管您可以定义requirements.yaml文件,但我想知道是否可以在此处定义图表?
此外,为了使事情变得容易(不是),我还需要替换mongodb图表的一些值。不知道我是否要在此限制很多:)它看起来像子图表关系,所以听起来可能。
我现在正在使用的替代方法是先安装马stable /图表,然后安装我的自定义图表。但是,只要将这种依赖性添加到我的自定义图表中,就可以将其减少为一个helm
命令,那将是一个改进。
更新:
我将用我的发现更新这篇文章,并希望这最终会导致解决方案:)到目前为止,requirements.yaml
:
dependencies:
- name: "mongodb"
version: "4.x.x"
repository: "@stable"
import-values:
- child: default.data
parent: myimports
目前还不确定如何使用import-values
自定义mongodb,但目前我仍然遇到以下错误
Error: found in requirements.yaml, but missing in charts/ directory: mongodb
而且,因为我使用的是stable
,所以我不确定如何处理version
字段
答案 0 :(得分:2)
自头盔2.2.0版起,您可以将mongodb图表存储在同一目录中,并在您的requirements.yaml
文件中将其引用为:
dependencies:
- name: mongodb
version: "<the_mongo_chart_version>"
repository: "file://../mongodb"
这样一来,您就可以使用值并通过1个helm命令部署整个对象。
有关更多信息,请参阅
https://github.com/helm/helm/blob/master/docs/helm/helm_dependency.md
答案 1 :(得分:1)
不幸的是,这还不足以将依赖关系图添加到您的requirements.yaml文件中。
此外,图表本人应实际位于Charts目录中。这是一个头盔限制。
如果您同意在回购中管理第三方图表(应该很简单),那么您就可以通过一个helm命令安装所有第三方图表,并按照here的说明更改子图表值。
我有一个示例elasticsearch和kibana安装作为一个图表:In my test repo。请查阅。我希望这个例子可以帮助您解决问题。
答案 2 :(得分:0)
在您自己的仓库中处理第三者图表可能是微不足道的解决方案,因为您需要一个helm命令来运行它,但这会使维护变得更加麻烦。
我将先定义Helm依赖项,然后像运行其他任何软件包管理系统一样,运行一个小的脚本来下载它们,您可以按照以下步骤进行操作:
requirements.yaml
dependencies:
- name: "mongodb"
version: "7.8.10" <--- Pay attention this refers to the chart's version and not the app version [see link 1]
repository: "@stable"
1。 https://github.com/helm/charts/blob/master/stable/mongodb/Chart.yaml#L3
运行用于创建图表文件夹并在requirements.yaml
install.sh
helm dependencies list
helm dependencies update
helm install --name my-chart .
如果要更改子图表的值,则需要遵循与图表的值路径完全相同的路径(在本示例中为ingress.enabled
),并添加顶级图表名称。
请注意!这必须与requirements.yaml
中提到的图表名称完全匹配!
有两种方法可以设置这些值:
使用命令行:
helm install --name my-chart . --set mongodb.ingress.enabled=true
或在您自己的values.yaml
mongodb:
ingress:
enabled: "true"