对于Helm Chart Dependencies,依赖于ChartCenter

更新:截至2021年5月1日- ChartCenter中央存储库已被淘汰,所有功能已弃用。有关中心日落的更多信息,请阅读中心弃用博客文章

ChartCenter是一个免费的Helm图表中心存储库,用于帮助社区为公开可用的Kubernetes应用程序找到不可变、安全、可靠的图表。使用ChartCenter,您可以从一个始终可用的位置代理所有公共图表的单一真相来源。

如果没有ChartCenter,你需要为你想要安装和更新的Kubernetes应用程序添加每个Helm图表的存储库到Helm客户端。当您将ChartCenter存储库添加到Helm客户端时,您可以立即访问执掌图表超过250名公众Kubernetes应用程序(和增长)代理在ChartCenter。因此,与其使用许多公共Helm存储库,不如只使用一个。

当您编写自己的Helm图表时,还可以通过引用ChartCenter中的代理来确保作为依赖项使用的公共图表是不可变的,并且始终可用。这避免了任何不愉快的意外,可能导致稍后在图表的原始回购中强制推或删除。当你使用ChartCenter时,你总是知道你得到的是什么——甚至有了ChartCenter丰富的依赖关系、统计数据和安全性的元数据。

让我们看看如何从你的依赖图表中引用ChartCenter,以及Helm的小插件使你能够这样做。

使用ChartCenter

它是如此容易设置图表中心作为您的中心执掌库

$ helm repo添加中心https://repo.chartcenter.io $ helm repo更新


现在你的Helm客户端可以访问ChartCenter中3万多个版本的Helm图表,许多流行的应用图表都在ChartCenter的主页上,所以你可以方便地找到它们。

但ChartCenter可能会为同一个Kubernetes应用程序保存几套不同的Helm图表,这些图表可能包含专业版本、重复版本或已弃用版本的图表。

例如,搜索PostgreSQL数据库应用在ChartCenter找到几个匹配:

在ChartCenter中,一个名称空间标识了Helm图表版本所在的Helm存储库,您必须通过该名称空间引用ChartCenter Helm图表。例如,引用PostgreSQL的官方Bitnami Helm图表为bitnami这样\ postgresql

从helm命令行安装PostgreSQL:

$ helm install postgresql center/bitnami/postgresql

使用ChartCenter创建依赖关系图

在上面的例子中,我们已经安装bitnami这样/ postgresql赫尔姆的回购https://repo.chartcenter.io,而且效果很好。

但是,我们不希望通过helm客户端的命令行安装PostgreSQL,而是希望将它作为一个依赖项安装在我们自己创建的helm图表中。

要在Helm图表中包含Bitnami PostgreSQL,您的图表的requirements.yamlChart.yaml文件可以在下面指定依赖关系Bitnami的图表存储库

依赖项:—name: postgresql version: 9.2.1 repository: https://charts.bitnami.com/bitnami condition: 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文件准备上传到任何Helm存储库。

Boom,一个使用ChartCenter插件作为工具来打包来自ChartCenter helm repo的依赖图表的好方法。

ChartCenter图表制作愉快