🌟

ArgoCD で Multiple Sources を利用してHelm のvalueFiles を指定する方法

2023/12/20に公開

はじめに

ArgoCD の Application をマニフェストファイルで定義しているときに、source として helm を使いながら、values をファイルで定義する方法が分かりずらかったので、まとめます。

問題

下記のように、helm の定義で valueFiles を使って Value を定義したかったのですが、これだとうまくいきませんでした。

この設定だと、repoURL で指定しているリポジトリのファイル階層を辿ってしまいます。

# ...
  sources:
  - repoURL: https://argoproj.github.io/argo-helm
    targetRevision: 0.9.1
    chart: argocd-image-updater
    helm:
      releaseName: argocd-image-updater
      valueFiles:
      - ./path/to/file/values.yaml

解決方法

下記のように、source を複数定義して、ref を使って $repo で参照してあげると、うまくいきます。

# ...
  sources:
  - repoURL: https://argoproj.github.io/argo-helm
    targetRevision: 0.9.1
    chart: argocd-image-updater
    helm:
      releaseName: argocd-image-updater
      valueFiles:
      - $repo/path/to/file/values.yaml
  - repoURL: https://github.com/ORG/REPOSITORY.git
    targetRevision: main
    ref: repo

おわりに

ちょっと手こずったので、誰かの参考になればと思い、まとめておきました。

valueObject で定義してもいいのですが、数が多い場合は valueFiles を使うと便利だと思います。

ちなみに、valueFiles, valueObject の併用はできないので注意です。

参考

Multiple Sources for an Application - Argo CD - Declarative GitOps CD for Kubernetes

GitHubで編集を提案

Discussion