依赖

最佳实践的这部分阐述Chart.yaml中声明的dependencies

版本

如果有可能的话,使用版本范围而不是某个固定的版本。建议的默认设置时使用补丁级别版本的匹配:

  1. version: ~1.2.3

这样会匹配 1.2.3以及该版本的任何补丁,也就是说,~1.2.3相当于>= 1.2.3, < 1.3.0

关于完整的版本匹配语法,请参照 语义版本文档

预发布版本

上述版本约束不适用于预发布版本。比如 version: ~1.2.3 可以匹配 version: ~1.2.4 但不能匹配 version: ~1.2.3-1。 预发布及补丁级别匹配如下:

  1. version: ~1.2.3-0

仓库URL

如果可能的话,使用 https:// 仓库URL,而不是http:// URL。

如果这个仓库已经被添加到仓库索引文件中,仓库名称可以作为URL的别名。使用alias:@ 后跟仓库名称。

文件URL(file://...) 被认为是一种有固定部署管道组装的chart的“特例”。

当使用 下载器插件时,URL会使用特定于插件的方案。 注意,chart的用户需要安装一个支持该方案的插件来更新或构建依赖关系。

repository字段为空时,Helm无法对依赖项执行依赖管理操作。在这种场景下,Helm假定依赖关系位于charts 文件夹的子目录中,名称与依赖关系的name属性相同。

条件和标签

条件和标签可以被添加到任意 可选的 依赖中。

条件的首先格式是:

  1. condition: somechart.enabled

somechart是依赖的chart名称。

当多个子chart(依赖)一起提供可选或可交换的特性时,这些chart应该共享相同的标签。

比如,如果nginxmemcached在chart中一起提供性能优化,且需要在使用该功能时同时存在,则都应该有如下的标签部分:

  1. tags:
  2. - webaccelerator

这允许用户使用一个标签打开和关闭该功能。