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

ArgoCD插件拉取私有Artifactory Helm依赖失败求助

问题解决步骤

核心原因

ArgoCD repo-server中配置的Helm仓库信息不会自动同步到插件sidecar容器中,导致插件执行helm命令时无法识别已配置的私有仓库;同时原插件init命令存在语法错误,sh -c后未将多个命令合并为单个执行串。

具体修复方案

1. 修正init命令的语法错误

原init命令将helm repo update和helm dependency build拆分为两个独立参数,导致sh -c仅执行第一个命令,后续命令被当作参数传递,引发错误。需合并为单个命令串:

init:
  command:
    - sh
    - "-c"
    - "helm repo update && helm dependency build"

2. 在插件中显式添加私有Helm仓库

由于插件容器无法继承repo-server的仓库配置,需在init阶段手动添加私有仓库,并注入认证信息:

init:
  command:
    - sh
    - "-c"
    - |
      # 添加私有Artifactory Helm仓库
      helm repo add artifactory-private https://your-artifactory-domain/artifactory/helm-local \
        --username ${ARTIFACTORY_USER} \
        --password ${ARTIFACTORY_PASSWORD}
      helm repo update
      helm dependency build

3. 为插件容器注入认证环境变量

将存储Artifactory用户名密码的Secret挂载为插件sidecar的环境变量。在ArgoCD的插件配置(如cmp-plugin.yaml)中添加:

container:
  envFrom:
    - secretRef:
        name: artifactory-creds # 替换为你的Secret名称

其中artifactory-creds Secret需包含ARTIFACTORY_USER和ARTIFACTORY_PASSWORD两个键。

4. 验证网络连通性

确保插件sidecar容器能访问私有Artifactory实例,检查集群网络策略、防火墙规则是否允许出站流量到Artifactory地址。

完整修正后的插件配置示例

discover:
  find:
    command:
      - sh
      - "-c"
      - "find . -name 'Chart.yaml' && find . -name 'values.yaml'"
init:
  command:
    - sh
    - "-c"
    - |
      helm repo add artifactory-private https://your-artifactory-domain/artifactory/helm-local --username ${ARTIFACTORY_USER} --password ${ARTIFACTORY_PASSWORD}
      helm repo update
      helm dependency build
generate:
  command:
    - sh
    - "-c"
    - |
      helm template $ARGOCD_APP_NAME -n $ARGOCD_APP_NAMESPACE ${ARGOCD_ENV_HELM_ARGS} . |
      argocd-vault-plugin generate -
  lockRepo: false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:27:26