在Artifactory中掌握你的舵图库

舵图储存库

根据我们的Helm Chart存储库支持的初始版本在Artifactory几周前,是时候进入快速通道,让您的Helm存储库启动并运行了。简要回顾一下,Helm是Kubernetes的包管理器,可以帮助您管理Kubernetes应用程序执掌图表

Artifactory现在本机支持执掌存储库让您完全控制Kubernetes的部署过程。它支持代理远程Helm存储库,部署舵图到本地存储库,当然,使用虚拟存储库来聚合所有其他Helm Chart存储库,以便您可以通过单个端点访问它们。

戴上头盔,享受旅程吧!

为了最大限度地利用Artifactory中的Helm Chart存储库,我们建议最好应用这些掌舵存储库实践

虚拟存储库是可行的方法

Artifactory支持创建虚拟Helm存储库对于Kubernetes,其中可以包含本地和远程存储库。这允许您从为虚拟存储库定义的单个URL访问本地托管的Helm图表以及代理的远程Helm图表存储库。

使用虚拟存储库可以获得以下好处:

  • 舵图分辨率
    Artifactory只支持从虚拟存储库中解析Helm图表。来解析舵图从本地或远程Helm图表存储库中,您需要将它们聚合到一个虚拟Helm图表存储库中。
  • 控制领域
    用于搜索和解析工件的受控域。
  • 轻松访问多个存储库
    一旦您所有的本地和远程Helm图表存储库被一个虚拟存储库聚合,您所有的Helm图表都可以通过一个URL访问。
  • 安全和私有存储库
    使用虚拟存储库在Artifactory现有的基础上增加了安全层,使您可以根据Kubernetes中的项目或开发团队对Helm图表进行细粒度的访问控制。

在Artifactory中定义一个虚拟的Helm Chart存储库:

  1. 创建一个虚拟存储库
  2. 设置包类型
  3. 选择要包含到的底层本地和远程Helm存储库基本设置选项卡。

中配置存储库JFrog Helm客户端

分离你的稳定库和孵化器库

虽然我们建议使用单个虚拟存储库,但我们也建议在稳定公众舵图存储库,以及在孵化器舵图存储库。这两者应该聚合在两个不同的虚拟存储库中,以便在需要正式发布版本时可以使用其中一个,而在需要预发布版本时可以使用另一个。这将确保你的构建得到你想要的图表的正确版本,并避免Kubernetes中的混乱。

在图表中使用SemVer v2版本控制

JFrog建议使用SemVer,因为它将有助于处理以后的版本控制、版本范围需求以及对index.yaml的正确排序和解析。

保持你的头盔用户的循环

Helm包搜索在Artifactory是定制的,允许用户搜索Helm存储库s按“应用版本”和not only不仅;y“版本”,它指的是图表版本。应用版本是一个有用的信息,因为它可以让你的用户知道他们使用的是哪个版本的应用,因为图表版本可能会有所不同。将参数添加到列表中后,可查询该参数Chart.yaml文件。

搜索舵

重新计算索引。从头开始创建Yaml文件

Artifactory支持重新计算本地index.yaml如果你怀疑你的index.yaml可能是腐败。

重新计算本地index.yaml文件:

  1. 在树浏览器中选择您的Helm Chart存储库。
  2. 选择重新计算指数从右键菜单中。
    重新计算指数

选中索引后,将异步计算索引。

控制虚拟仓库的元数据检索缓存周期

虚拟存储库将index.yaml所有存储库的文件,它们聚合成一个index.yaml文件。但是,为每次对聚合的本地或远程存储库之一的更改重新计算聚合索引可能会占用大量资源。

为了避免必须为远程存储库中的每次更改重新计算聚合索引,将对其进行缓存,并且仅根据虚拟存储库的元数据检索缓存周期设置重新计算。但是,默认情况下,将此设置为平均10分钟的合理超时;如果发现任何聚合存储库频繁更改,可以降低此值,以便更频繁地重新计算索引。

元数据检索

在任何时候,你也可以通过清除缓存来手动触发索引的重新计算-我们称之为“Zapping”缓存,可以像下面这样调用:

关闭Artifactory中的缓存:

  1. 工件模块浏览器,选择要删除的虚拟存储库。
  2. 点击Zap缓存在右键菜单中或选择行动从下拉菜单中。

JFrog CLI帮助您部署掌舵图

你可以用JFrog CLI发布和上传您的Helm图表,因为Helm客户端目前不支持部署Helm图表。

例如,上传所有*。文件到helm-localJFrog CLI上传命令

Jfrog rt“*”。tgz”helm-local

要了解有关创建掌舵图时的一般最佳实践的更多信息,请参见图表最佳实践指南