通过Artifactory绘制舵机枢纽图

大量的赫尔姆图点缀着互联网的景观,很难知道它们的全部或它们的位置。为了解决这个问题,Helm创建了Helm Hub为不断增长的公共Helm图表存储库提供一个中央目录。

浏览精彩Helm Hub UI,你可以看到找到许多优秀的Kubernetes-ready应用程序是多么容易。通过浏览器,您可以搜索您需要的公开可用的图表。

有了如此庞大且不断增长的清单集,如果您的构建自动化工具可以使用Helm Hub作为单一的中心位置,为整个组织提取Helm图表,这不是很好吗?但这并不容易做到;你不能通过Helm CLI访问Helm Hub。

为了解决这个问题,我们创建了Helm-hub-syncHelm社区的工具。这个实用程序可以帮助您创建并维护一个虚拟的Helm图表存储库JFrog Artifactory这可能是唯一的真相来源。

舵图最佳实践

Artifactory支持与helm兼容的存储库。这些可以是组织私有的图表的本地存储库,或者代理公共Helm存储库的远程存储库。

Helm- Hub -sync工具在K8s集群中运行,并从Helm Hub检索repos列表。它会自动创建Artifactory中的远程存储库来代理Helm Hub列出的每个repos,并创建一个Artifactory中的虚拟存储库包括他们所有人。

舵机轮毂同步图

然后,您可以从虚拟的单个URL中拉出Helm Hub列出的任何Helm图表helmhubArtifactory中的存储库。作为奖励,您还将获得从Artifactory中的代理中提取图表的更快检索速度。

安装Helm-hub-sync

JFrog公共Helm图表存储库为将Helm-hub-sync安装到Kubernetes集群提供了最快、最可靠的方式。

开始之前

安装Helm-hub-sync对于K8s集群,您需要确保具备以下先决条件:

步骤1:添加Helm Chart Repository

使用舵手回购命令,添加JFrog公共Helm图表存储库。

$ helm repo添加jfrog https://charts.jfrog.io $ helm repo更新

步骤2:定义舵图覆盖

要配置Helm-hub-sync,最佳实践是使用一个override-values.yaml文件:

env: artifactory: url: "https://artifactory.mydomain.com/artifactory" authData: "user:user_api_key"

这个例子override-values.yaml文件上面设置了要连接的Artifactory URL和用户的凭据。

注意:取代mydomain.com用你的域,也代替用户user_api_key用实际值。

步骤3:安装舵机中心同步器

现在你已经准备好通过Helm图表安装Helm-hub-sync了:

命名空间:jfrog/helm-hub-sync“helm-hub-sync”不存在。现在正在安装。名称:helm-hub-sync名称:helm-hub-sync状态:已部署资源:==> v1/ConfigMap名称DAT2022世界杯阿根廷预选赛赛程A AGE helm-hub-sync 8 2s ==> v1/部署名称READY - updated AVAILABLE AGE helm-hub-sync 0/1 1 0 2s ==> v1/Pod(相关)名称READY STATUS重启AGE helm-hub-sync- 6d8bfbffbc -b8ttb 0/1 ContainerCreating 0 2s ==> v1/Secret NAME TYPE DATA AGE helm-hub-sync Opaque 1 3s ==> v1/ServiceAccount NAME SECRETS AGE helm-hub-sync 1 2s

你可以通过运行以下命令来检查Helm-hub-sync应用:

Kubectl get pods -namespace helm-hub-sync

步骤4:设置中央Helm存储库

将Helm-hub-sync安装到Kubernetes集群后,您可以设置要使用的Helm客户端helmhub存储库作为使用图表的单一中心位置

$ helm repo add helmhub https://artifactory.mydomain.com/artifactory/helmhub/——username user——password user_api_key

注意:取代mydomain.com用你的域,也代替管理admin_password用实际值。

验证你的头盔回购

一旦安装了Helm-hub-sync,你就可以验证虚拟helmhub仓库和它的远程仓库是在Artifactory中创建的:

  1. 在浏览器中打开Artifactory并显示虚拟存储库列表。例如:https://artifactory.mydomain.com/artifactory/webapp/#/admin/repositories/virtual
    Helmhub虚拟存储库
  2. 你应该看到helmhub在您的虚拟存储库中列出,包含大量的存储库。要查看该列表,请单击helmhub,然后向下滚动到包括存储库
    您应该会看到一个长长的Helm存储库列表,这些存储库已被添加为远程存储库。

使用Virtual Helm Repository

helmhub虚拟存储库可以通过其URL访问,就像任何其他Artifactory存储库一样。您可以访问任何远程存储库中保存的任何图表,就好像它们都保存在一个单独的存储库中一样helmhub存储库。

例如,您可以使用Helm CLI来查找图表,就像在中搜索“artifactory”一样helmhub

$ helm search helmhub/artifactory名称图表版本应用程序版本说明helmhub/artifactory 7.16.11 6.11.6通用存储库管理器支持所有主要包…6.11.6通用存储库管理器支持所有主要包…

请注意,实际保存图表的远程存储库没有标识。这就是Artifactory虚拟存储库的工作方式——为了方便起见,它们伪装成一个单独的repo。

然而,这种好处也可能是一个问题,如果在不同的远程存储库中存在具有相同名称的图表。在这种情况下,只显示版本号最高的图表。

要查看所有远程存储库中同名的所有图表,请指定- l国旗。这将迫使Helm CLI显示长清单,每个版本的图表:

$ helm search helmhub/chart-name - 1

同样值得注意的是稳定的中的图表存储库被排除在外helmhub虚拟存储库。我们选择这样做是因为Helm Hub预计将取代稳定的作为公共存储库, Helm v3 beta不再添加稳定的默认为Repo。这些图表稳定的包含越来越有可能在其他仓库中被重复。

如果你想访问稳定的通过Artifactory helm远程存储库的repo图表,您必须手动添加它。如果您愿意,还可以将该远程回购添加到helmhub虚拟存储库。

绘制下一条航线

一旦你安装好舵机同步系统并开始运行,人工工厂已准备好提供舵图从Helm Hub上列出的任何公共存储库中获取。通过虚拟存储库,Artifactory立即成为您系统的唯一真实来源。

当然,Helm Hub是一个动态目录,并且一直在添加新的存储库。这就是为什么Helm- Hub -sync将继续监控Helm Hub并更新helmhub在Artifactory的存储库中出现新的Helm图表库。

你也可以用Artifactory中的本地Helm存储库来存储您组织的Helm图表私人K8s应用程序。这有助于您创建一个全面的Kubernetes注册表应用程序的所有组件都可以通过中央工件管理器完全跟踪。

如果您愿意,您甚至可以将这些本地Helm存储库和helmhub将虚拟存储库转换为另一个虚拟存储库。这为您提供了访问私有和公共Helm图表库的单个URL。

随着Helm和Kubernetes的地理范围越来越广,导航变得越来越困难。有了舵机中心同步工具,Artifactory成为一种更快的巡航方式。