You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ArgoCD实现跨Git仓库使用Helm模板与values.yaml?

实现ArgoCD跨Git仓库使用Helm模板与values文件的方案

方案1:直接配置ArgoCD应用跨仓库引用

ArgoCD支持在单个应用中分别指定Helm模板源和values文件源,无需修改现有仓库结构:

  • 将ArgoCD应用spec.source的类型设为helm,指定仓库B作为Helm chart的来源(支持Git仓库形式的Helm repo,或已托管的Helm仓库)
  • 通过spec.source.helm.valueFiles或spec.source.helm.valuesFrom指向仓库A中的values.yaml文件

示例应用配置片段:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: your-app
spec:
  source:
    repoURL: <仓库B的Git地址> # 示例:https://github.com/xxx/repo-b.git
    targetRevision: main
    chart: ./path/to/helm-chart # 仓库B中Helm模板的相对路径
    helm:
      valueFiles:
        - https://<仓库A的Git地址>/raw/main/values.yaml # 直接引用仓库A的raw文件路径
      # 也可以用valuesFrom从仓库A的Git源拉取
      # valuesFrom:
      #   - git:
      #       repoURL: <仓库A的Git地址>
      #       targetRevision: main
      #       path: values.yaml
  destination:
    server: https://kubernetes.default.svc
    namespace: your-namespace

注意:私有仓库需确保ArgoCD已配置对应访问凭证

方案2:将仓库B的Helm模板作为子Chart引入仓库A

在仓库A中创建空Helm chart,将仓库B的模板作为依赖引入,保持ArgoCD指向仓库A的同时使用仓库B的模板:

  1. 在仓库A根目录创建Chart.yaml,添加仓库B的依赖:
apiVersion: v2
name: your-wrapper-chart
version: 0.1.0
dependencies:
  - name: actual-chart
    version: "1.0.0" # 仓库B中chart的版本
    repository: "git+https://<仓库B的Git地址>#main" # 指向仓库B的Git路径
  1. 执行helm dependency update拉取仓库B的模板到仓库A的charts目录,提交到Git
  2. 仓库A的values.yaml可直接覆盖仓库B模板的参数
  3. ArgoCD应用仍指向仓库A根目录,类型设为helm即可

方案3:同步仓库B模板到仓库A(适合本地定制场景)

若需对仓库B的模板做定制修改,可通过脚本或CI流水线定期同步:

  • 编写shell脚本,克隆仓库B的模板目录到仓库A的charts/下
  • 借助GitHub Actions、GitLab CI等工具,在仓库B更新时自动同步并提交到仓库A
  • ArgoCD正常部署仓库A中的Helm chart即可

内容的提问来源于stack exchange,提问作者Hutger Hauer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:18:20