对于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.yamlChart.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图表