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

Argo CD使用ApplicationSet时无法拉取私有OCI仓库Helm库图表

解决方案

1. 为ArgoCD配置私有ACR Helm仓库的访问权限

ArgoCD需要具备访问Azure ACR私有Helm仓库的权限才能拉取依赖,先完成仓库的认证配置:

  • 命令行方式(适合批量操作):
argocd repo add <自定义仓库名称> --type helm --url https://<你的ACR名称>.azurecr.io/helm/v1/repo --username <ACR服务主体ID> --password <ACR服务主体密钥>
  • UI方式:进入ArgoCD控制台的Settings → Repositories → Connect Repo,选择Helm类型,填入仓库URL和对应认证信息。

配置完成后,确保ApplicationSet生成的Application中,Helm依赖的仓库地址与该配置完全匹配,ArgoCD渲染图表时会自动使用已配置的认证拉取依赖。

2. 开启ArgoCD Helm自动更新依赖

在ApplicationSet模板中启用dependencyUpdate选项,让ArgoCD在渲染图表前自动执行helm dependency update,无需本地提前生成并提交模板文件:

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: pr-preview
spec:
  generators:
    - github:
        owner: <你的GitHub组织名>
        repo: <代码库名称>
        pullRequest:
          labels:
            - preview
  template:
    spec:
      source:
        repoURL: <代码库的GitHub地址>
        targetRevision: '{{head_sha}}'
        path: aks/jatin-intra-chart
        helm:
          dependencyUpdate: true # 开启自动更新依赖
          # 其他Helm配置(如values文件、参数等)
      destination:
        server: <你的K8s集群地址>
        namespace: 'pr-{{number}}'

该选项在ArgoCD v3.0.5中已支持,开启后ArgoCD会自动处理依赖拉取流程,无需提交本地生成的charts/目录。

3. 验证关键配置细节

  • 确认ACR Helm仓库已生成索引文件:ACR的Helm仓库目录下必须存在index.yaml,若缺失,需本地执行helm repo index后推送到ACR。
  • 检查ArgoCD Repo Server网络连通性:确保ArgoCD所在K8s集群能访问ACR(可通过配置VNet对等、ACR允许集群节点IP访问或开启ACR公共访问实现)。
  • 复用全局仓库配置:针对10+个仓库的场景,将ACR Helm仓库配置为ArgoCD全局仓库,所有ApplicationSet生成的应用可直接复用该配置,无需重复配置认证。

内容的提问来源于stack exchange,提问作者Jatin Mehrotra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 23:16:09