ArgoCD部署Helm应用未加载values.yml的问题求助
解决ArgoCD加载本地values.yml失败的问题
错误原因
当你配置的ArgoCD Application使用远程Helm仓库(repoURL指向https://charts.aerokube.com/)时,helm.valueFiles中指定的values.yml路径是相对于远程chart包内部的文件结构,而非本地文件系统的路径。ArgoCD会拉取远程的moon2 chart包,尝试在包内查找values.yml,但你的本地values.yml并未被包含在远程chart中,因此出现文件找不到的错误。
解决方案
以下是几种可行的解决方式,根据你的场景选择:
方案1:直接在Application中嵌入values内容
适合配置内容较短的场景,将本地values.yml的内容直接写入Application的helm.values字段:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: moon namespace: argocd spec: project: aerokube source: chart: moon2 repoURL: https://charts.aerokube.com/ targetRevision: 2.4.0 helm: values: | customIngress: enabled: true annotations: cert-manager.io/cluster-issuer: "letsencrypt" ingressClassName: nginx host: moon3.benighil-mohamed.com tls: - secretName: moon-tls hosts: - moon3.benighil-mohamed.com configs: default: containers: vnc-server: repository: quay.io/aerokube/vnc-server resources: limits: cpu: 400m memory: 512Mi requests: cpu: 200m memory: 512Mi destination: server: "https://kubernetes.default.svc" namespace: moon1 syncPolicy: syncOptions: - CreateNamespace=true
方案2:将values.yml托管到Git仓库(推荐)
适合需要版本控制或配置复杂的场景,将application.yml和values.yml上传到同一个Git仓库,然后修改Application的source指向该Git仓库,同时指定远程chart地址:
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: moon namespace: argocd spec: project: aerokube source: repoURL: <你的Git仓库HTTPS/SSH地址> targetRevision: main # 对应Git分支 path: ./ # 指向仓库中包含values.yml的目录 helm: chart: moon2 repoURL: https://charts.aerokube.com/ targetRevision: 2.4.0 valueFiles: - values.yml destination: server: "https://kubernetes.default.svc" namespace: moon1 syncPolicy: syncOptions: - CreateNamespace=true
这种方式下,ArgoCD会先拉取Git仓库中的values.yml,再结合远程的moon2 chart完成安装。
方案3:通过ArgoCD CLI传递本地values文件
如果使用CLI管理Application,可以通过--helm-value-file参数直接指定本地values.yml:
argocd app apply moon -f application.yml --helm-value-file values.yml
注意:这种方式属于临时传递配置,并非声明式持久化配置,若需长期维护,推荐方案1或2。
内容的提问来源于stack exchange,提问作者Mohamed
相关产品推荐
相关产品推荐

