首页 > 解决方案 > 如何将 Gitlab 的容器注册表用于带有 ArgoCDs CI/CD 机制的 Helm Charts?

问题描述

我的情况如下:

虽然这是一个不错的设置,但并不理想。

我在使用 helm chart git repo 时遇到的第一个问题是我不能(或不知道)如何区分我的暂存环境和我的生产环境。由于我的集群中有一个 dev 环境和 prod 环境,因此 argocd 将这两个环境与 helm chart repo 同步。我可以为每个环境使用单独的图表来解决这个问题,但这不是一个有效的解决方案。

在尝试解决上述问题时,我面临的第二个问题是我无法让 argocd 从 gitlab oci 注册表中提取 helm 图表。我这样做是为了让我的构建管道将 helm chart 存档文件推送到我的 gitlab 容器注册表,带有标签dev-latestor prod-latest,这很棒,正是我想要的。问题是,据我所知,argocd 无法从 gitlab 的容器注册表中提取。

如何使用 gitlab 作为我的 repo 和构建管道、用于打包我的应用程序的 helm 以及用于将我的 helm 应用程序与我的 k8s 集群同步的 argocd 来自动化我的管道?

标签: kubernetesgitlabgitlab-cikubernetes-helmargocd

解决方案


是我无法让 argocd 从 gitlab oci 注册表中提取 helm 图表。

您可能对 2021 年 7 月最新的 GitLab 14.1 感兴趣:

构建、发布和共享 Helm 图表

Helm 将图表定义为 Helm 包,其中包含在 Kubernetes 集群内运行应用程序、工具或服务所需的所有资源定义。
对于创建和管理自己的 Helm 图表的组织,拥有一个中央存储库来收集和共享它们很重要。

GitLab 已经支持多种其他包管理器格式

为什么不也支持 Helm?这就是社区成员和MVP 来自 14.0 里程碑 Mathieu Parent几个月前在新的 GitLab Helm 图表注册表破土动工之前提出的问题。社区和 GitLab 之间的合作是我们双飞轮战略的一部分,也是我喜欢在 GitLab 工作的原因之一。马修首领!

现在,您可以使用 GitLab 项目发布和共享打包的 Helm 图表

只需将您的项目添加为远程,使用个人访问、部署或 CI/CD 作业令牌进行身份验证。
完成后,您可以使用 Helm 客户端或 GitLab CI/CD 来管理您的 Helm 图表。
您还可以使用API用户界面下载图表。

下一步是什么?首先,我们想为图表提供额外的元数据
然后我们将通过使用它作为https://charts.gitlab.io/的替代品来开始对该功能进行测试。

因此,试试这个功能,并通过在史诗般的GitLab-#6366中发表评论让我们知道它是如何运行的。

请参阅文档问题


推荐阅读