对于Helm Chart Dependencies,依赖于ChartCenter

更新:自2021年5月1日起,ChartCenter中央存储库已经过期,所有功能已弃用。有关中心日落的更多信息请阅读中心反对博客帖子
ChartCenter是一个免费的Helm图表中心存储库,它是为了帮助舵社区为公开可用的Kubernetes应用程序找到不可变的、安全的、可靠的图表。使用ChartCenter,您可以从一个始终可用的位置代理所有公共图表。
如果没有ChartCenter,您需要将每个Helm图表的存储库添加到您想要安装和更新的每个Kubernetes应用程序的Helm客户端。当您将ChartCenter存储库添加到Helm客户端时,您将可以立即访问执掌图表超过250名公众Kubernetes在ChartCenter代理的应用程序(以及不断增长的应用程序)。因此,与其使用许多公共Helm存储库,不如只使用一个。
当您编写自己的Helm图表时,您还可以通过在ChartCenter中引用它们的代理,确保作为依赖项使用的公共图表是不可变的,并且总是可用的。这避免了任何不愉快的意外,这些意外可能在以后由于图表原始回购中的强制推入或删除而引起。当你使用ChartCenter时,你总是知道你得到的是什么——尤其是ChartCenter丰富的依赖、统计和安全元数据。
让我们看看如何从依赖关系图引用ChartCenter,以及使您能够这样做的Helm小插件。
使用ChartCenter
它是如此容易设置ChartCenter作为您的中心执掌库:
$ helm repo add center https://repo.chartcenter.io $ helm repo update
现在你的Helm客户端可以访问ChartCenter中超过30000个版本的Helm图表,许多流行的应用图表都在ChartCenter的主页上,所以你可以方便地找到它们。
但是ChartCenter可能会为同一个Kubernetes应用程序保存几组不同的Helm图表,这些图表来自可替代的回购,可能包含专门的、重复的或已弃用版本的图表。
例如,搜索PostgreSQL数据库应用程序在ChartCenter找到几个匹配:

在ChartCenter中,一个名称空间标识找到Helm图表版本的Helm存储库,您必须通过该名称空间引用ChartCenter Helm图表。例如,参考官方的Bitnami Helm图表PostgreSQL为bitnami这样\ postgresql.
从helm命令行安装PostgreSQL:
$ helm install postgresql center/bitnami/postgresql . sh
使用ChartCenter进行依赖关系图
在上面的例子中,我们已经安装了bitnami这样/ postgresql从赫尔姆的回购中https://repo.chartcenter.io,而且效果很好。
但是,我们不通过helm客户端的命令行安装PostgreSQL,而是将其作为我们自己创建的helm图表中的依赖项安装。
将Bitnami PostgreSQL包含在你的Helm图表中,你的图表requirements.yaml或Chart.yaml文件可能在依赖关系Bitnami的图表存储库:
依赖项:—名称:postgresql版本:9.2.1存储库:https://charts.bitnami.com/bitnami条件:postgresql.enabled
但是我们想在ChartCenter中使用Bitnami图表的不可变代理。在这种情况下,存储库会指定ChartCenter回购的URL,但图表的的名字还必须包括命名空间:
依赖项:-名称:bitnami这样/ postgresql版本:9.2.1https://repo.chartcenter.io条件:postgresql.enabled
的bitnami这样命名空间使我们能够在ChartCenter中寻址正确的图表问题这是执掌包司令部还不明白。
有一个问题为Helm v3客户端打开,以支持额外的命名空间执掌包命令,但排序可能需要一段时间。Helm v2客户端不接受任何新特性。
那么在此期间我们如何解决这个问题呢?
使用ChartCenter插件
为了使Helm客户端能够识别名称空间,我们开发了一个Helm的ChartCenter插件可以与Helm v3或v2客户端一起使用。
让我们安装最新的插件版本:
$ helm插件安装https://github.com/jfrog/chartcenter-plugin
插件替换了Helm依赖更新而且执掌包只有一个的命令领导中心命令:
$ helm center
这个新命令将运行Helm依赖更新,从ChartCenter Helm存储库中提取子图表,然后将主图表和子图表打包到. tgz文件准备好上传到任何赫尔姆仓库。
Boom,一个使用ChartCenter插件作为工具从ChartCenter helm repo中打包依赖图表的好方法。
快乐的ChartCenter图表
