对于Helm Chart Dependencies, Depend on ChartCenter

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

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