如何通过 ArgoCDs CI/CD 机制使用 Gitlab 的 Helm Charts 容器注册表?

问题描述 投票:0回答:2

我的情况如下:

  • 有一个带有几个节点的 kubernetes 集群
  • 在集群上安装了 argocd 并且运行良好
  • 使用 gitlab 进行我的存储库和构建管道
  • 有另一个存储我的舵图的存储库
  • 在 gitlab 中构建 docker 镜像并推送到我的 gitlab 注册表
  • 让 argocd 能够指向我的 Helm Chart 存储库并将 Helm Chart 与我的 k8s 集群同步
  • 将 helm 图表存档文件推送到我的 gitlab 存储库

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

我在使用 Helm Chart git 存储库时面临的第一个问题是我无法(或不知道)如何区分我的暂存环境和生产环境。由于我的集群中有开发环境和生产环境,因此 argocd 将这两个环境与 Helm Chart 存储库同步。我可以为每个环境使用单独的图表来解决这个问题,但这不是一个有效的解决方案。

在尝试解决上述问题时,我面临的第二个问题是我无法让 argocd 从 gitlab oci 注册表中提取 helm 图表。我这样做是为了让我的构建管道将 Helm Chart 存档文件推送到我的 gitlab 容器注册表,并带有标签

dev-latest
prod-latest
,这很棒,正是我想要的。问题是,据我所知,argocd 无法从 gitlab 的容器注册表中提取数据。

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

kubernetes gitlab gitlab-ci kubernetes-helm argocd
2个回答
0
投票

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

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

构建、发布和共享 Helm 图表

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

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

为什么不也支持 Helm?这是社区成员和 14.0 里程碑的 MVP Mathieu Parent 几个月前在新的 GitLab Helm 图表注册表破土动工之前提出的问题。社区和 GitLab 之间的合作是我们“双飞轮策略”的一部分,也是我喜欢在 GitLab 工作的原因之一。起首马蒂厄! 现在您可以使用 GitLab 项目来发布和共享打包的 Helm 图表

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

您还可以使用

API

用户界面 下载图表。 下一步是什么?首先,我们想提供图表的附加元数据

然后我们将使用它作为 https://charts.gitlab.io/ 的替代品来开始
dogfooding 该功能。 因此,请尝试一下该功能,并通过在史诗中发表评论来让我们了解它的运行情况GitLab-#6366

请参阅文档

问题

您必须使用

0
投票
而不是 Gitlab 容器注册表。

使用以下 3 个命令添加舵图:

登录ArgoCD:

argocd login $ARGOCD_HOST:$ARGOCD_PORT --insecure --username $ARGOCD_ADMIN_USER --password $ARGOCD_ADMIN_PASSWORD
  1. 添加存储库:
    argocd repo add <REPO_URL> --type helm --name <NAME> --username <USERNAME> --password <PASSWORD>
  2. 添加应用程序:
    argocd app create <APP_NAME> --repo <REPO_URL> --helm-chart <HELM_CHART_PACKAGE_NAME> --revision <HELM_CHART_PACKAGE_VERSION> --dest-namespace default --dest-server https://kubernetes.default.svc
  3.     
© www.soinside.com 2019 - 2024. All rights reserved.