如何解决我什么时候应该在Charts /目录中放置子图表,在Chart.yaml中放置依赖项,在Helm中放置Requirements.yaml?
如果我有一个依赖于另一张图表的图表,则最佳实践是什么时候将其作为软件包包含在charts/
目录与requirements.yaml
和dependencies
属性中Chart.yaml
?
例如,如果我具有将要使用的多个Helm图表的共享依赖关系,是否应该始终将其放在Helm存储库中,然后在每个图表的requirements.yaml
中引用它?还是将其包含在charts/
目录中是有好处的?
示例
requirements.yaml
dependencies:
- name: mariadb
version: 7.x.x
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled
tags:
- wordpress-database
Chart.yaml
dependencies:
- name: mariadb
version: 7.x.x
repository: https://charts.bitnami.com/bitnami
condition: mariadb.enabled
tags:
- wordpress-database
图表/目录
my-package.tgz
/charts
mariadb-7.0.0.tgz
...elided...
(从技术上讲,我将实际分解图放在图表目录的第4位)
解决方法
如果您同时需要Helm 2和Helm 3的兼容性,请将其包含在单独的requirements.yaml
文件中。大多数图表都可以在两种版本的Helm上正常工作(如果CLI有所不同),因此,如果您的环境仍需要Helm 2兼容性,这是您的最佳选择。
如果您不需要Helm 2兼容性,则在Chart.yaml
文件中列出该文件要少一个文件。
如果我有特定要求,我只会手动下载图表(或解压缩图表),这可能是因为我的产品不方便从公共Internet下载软件而未经过特别验证或批准。即使那样,通常也要有一个内部内部已批准工件的存储库,并且将requirements.yaml
/ Chart.yaml
指向该存储库要比保留一个额外的副本更好。 (您通常如何处理开源库依赖项?)
即使您具有本地依赖性图表或支持图表库,也要对其进行正确的版本控制并将其发布到图表存储库中,而不是将其压缩包复制到charts/
目录中。将依赖项放入charts/
的唯一好处是不需要将其放在存储库中,但是通常需要一个存储库以简化管理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。