制图舵毂通过Artifactory

大量的Helm图表点缀在互联网上,很难知道它们的全部或它们的位置。为了解决这个问题,Helm创建Helm Hub为越来越多的公共赫尔姆图表库提供一个中央目录。
浏览很棒的Helm Hub UI,你可以看到,找到大量优秀的kubernetes就绪应用程序是多么容易。通过浏览器,您可以搜索所需的公开图表。
有了如此庞大且不断增长的列表集,如果您的构建自动化工具可以使用Helm Hub作为为整个组织提取Helm图表的单一中心位置,这不是很棒吗?但这并不容易做到;你不能通过Helm CLI访问Helm Hub。
为了解决这个问题,我们创建了Helm-hub-syncHelm社区的工具。这个实用程序可以帮助您创建和维护虚拟舵手图表存储库在JFrog Artifactory这可能是唯一的真相来源。
舵图最佳实践
Artifactory支持与helm兼容的存储库.这些可以是您组织私有的图表的本地回购,也可以是代理公共Helm回购的远程存储库。
Helm- Hub -sync工具在K8s集群中运行,并从Helm Hub检索回购列表。它会自动创建Artifactory中的远程存储库来代理Helm Hub列出的每笔回购,并创建一个Artifactory中的虚拟存储库这包括他们所有人。

然后,您可以从虚拟的单个URL中提取Helm Hub列出的任何Helm图表helmhubArtifactory中的存储库。作为奖励,您还将获得从Artifactory中的代理中提取图表的更快检索速度。
安装Helm-hub-sync
JFrog公共Helm图表存储库提供了最快和最可靠的方式来安装Helm-hub-sync到Kubernetes集群。
开始之前
安装Helm-hub-sync对于K8s集群,您需要确保具备以下先决条件:
- 启用了RBAC的Kubernetes集群
- 舵安装
执掌init或Tillerless舵道路 - Artifactory或Artifactory哈安装,和用户,可以添加/编辑/删除虚拟和远程Helm库
步骤1:添加Helm Chart Repository
使用Helm repo添加命令Helm客户端,添加JFrog公共Helm图表库。
$ helm repo添加jfrog https://charts.jfrog.io $ helm repo更新
步骤2:定义舵图覆盖
配置舵轮同步的最佳实践是使用一个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-hub-sync
现在你已经准备好通过Helm图表安装Helm-hub-sync:
$ helm upgrade——install helm-hub-sync——命名空间helm-hub-sync jfrog/helm-hub-sync -f overrides -values。“helm-hub-sync”不存在。现在正在安装。NAME: helm-hub-sync NAMESPACE: helm-hub-sync STATUS: DEPLOYED 2022世界杯阿根廷预选赛赛程RESOURCES: ==> v1/ConfigMap NAME DATA AGE helm-hub-sync 0/1 1 0 2s ==> v1/Pod(相关)NAME READY STATUS重启AGE helm-hub-sync-6d8bfbffcb-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——命名空间helm-hub-sync
步骤4:设置中央Helm存储库
在Kubernetes集群中安装了Helm-hub-sync后,您可以将Helm客户端设置为使用helmhub存储库作为您的使用图表的单一中心位置.
$ helm repo添加helmhub https://artifactory.mydomain.com/artifactory/helmhub/——用户名user——密码user_api_key $ helm repo更新
注意:取代mydomain.com用你的域,也代替管理而且admin_password用实际值。
验证你的头盔回购
一旦安装了Helm-hub-sync,您就可以验证虚拟helmhub在Artifactory中创建了repository及其远程存储库:
- 在浏览器中打开Artifactory并显示虚拟存储库列表。例如:https://artifactory.mydomain.com/artifactory/webapp/#/admin/repositories/virtual

- 你应该看到helmhub在虚拟存储库中列出,并包含大量存储库。要查看该列表,请单击helmhub,然后向下滚动到包括存储库.

您应该会看到一长串已添加为远程存储库的Helm存储库。
使用虚拟头盔存储库
的helmhub虚拟存储库可以通过其URL访问,就像任何其他Artifactory存储库一样。您可以访问任何远程存储库中保存的任何图表,就好像它们都保存在单个存储库中一样helmhub存储库。
例如,您可以使用Helm CLI查找图表,如在此搜索“artifactory”中的helmhub:
$ helm search helmhub/artifactory NAME CHART VERSION应用版本描述helmhub/artifactory6.11.6支持所有主要软件包的通用存储库管理器…
请注意,没有标识实际保存图表的远程存储库。这就是Artifactory虚拟存储库的工作方式——为了方便,它们伪装成一个单一的回购。
然而,这个好处可能是个问题,如果在不同的远程存储库中存在具有相同名称的图表。在这种情况下,只显示版本号最高的图表。
要查看所有远程存储库中同名的所有图表,请指定- l国旗。这将迫使Helm CLI显示较长的列表,以及每个版本的图表:
$ helm search helmhub/chart-name -l
同样值得注意的是稳定的控件排除了图表存储库helmhub虚拟存储库。我们选择这样做是因为Helm Hub预计将被取代稳定的作为公共存储库, Helm v3 beta不再添加稳定的默认为回购。这些图表稳定的包含在其他回购中重复的可能性越来越大。
如果你想访问稳定的repo图表通过Artifactory helm远程存储库,您必须手动添加它。方法中添加该远程回购helmhub虚拟存储库。
绘制下一航线图
一旦你安装了舵轮同步并开始运行,Artifactory随时准备提供Helm海图Helm Hub上列出的所有公共存储库。通过虚拟存储库,Artifactory立即成为您系统的唯一真相来源。
当然Helm Hub是一个活的目录,新的存储库一直在添加。这就是为什么Helm- Hub -sync将继续监视Helm Hub并更新helmhub存储库在Artifactory作为新的Helm图表回购出现。
你也可以使用Artifactory中的本地Helm存储库来为您的组织存储Helm图表私人K8s应用程序.这有助于你创建一个全面的Kubernetes注册表应用程序的所有组件都可以通过中央工件管理器完全跟踪。
如果您愿意,您甚至可以将这些本地Helm存储库和helmhub虚拟存储库转换为另一个虚拟存储库。这为您提供了一个访问私有和公共Helm图表回购的URL。
随着Helm和Kubernetes的地理范围越来越广,导航变得越来越困难。有了Helm-hub-sync工具,Artifactory可以更快地通过巡航。
