我正在使用Helm Chart部署约15种微服务。有一个带有requirements.yaml
的父头盔图表,其中所有必需的微服务都列为依赖项。
示例requirements.yaml
文件:
dependencies:
- name: service1
repository: "@stable"
version: <version>
- name: service2
repository: "@stable"
version: <version>
- name: service3
repository: "@stable"
version: <version>
- name: service4
repository: "@stable"
version: <version>
condition: false
当我运行helm dependency update
时,将下载所有列为依赖项的图表。在某些情况下,正在开发的服务很少,不需要在生产中部署。
对于产品和非产品环境,我们具有不同的工件,并且禁用的服务不在产品工件中。因此,它给出了一个错误,称头盔图表丢失。我知道条件标志不会安装依赖项,但是如何阻止它下载依赖项?
答案 0 :(得分:0)
可能来的有点晚,不过最近整理了一个类似的问题,觉得可以帮到大家分享一下。您可以在 Chart.yaml 中声明依赖项时使用条件键:
dependencies:
- condition: gitea.cache.builtIn.enabled
name: memcached
repository: https://charts.bitnami.com/bitnami
version: 4.2.20
values.yaml 中的位如下:
[...]
gitea:
cache:
builtIn:
enabled: true
[...]
这个例子是从奇妙的 gitea helm chart repo 中提取的,应该是不言自明的。不过,你可以看看Helm documentation
请注意,如果嵌套图表的深度超过 2 级,helm2 可能会出现异常,因此我建议您查看 Helm3。
最后请注意,在我的情况下(因为我在部署 Helm 图表时走了一小段路,所以在渲染 helm 图表时会检查条件,而不是在运行 helm 依赖项更新时发生