jkroepke / helm-secrets

A helm plugin that help manage secrets with Git workflow and store them anywhere
https://github.com/jkroepke/helm-secrets/wiki
Apache License 2.0
1.74k stars 136 forks source link

Argo CD known limitation clarification #504

Open jacek-jablonski opened 3 weeks ago

jacek-jablonski commented 3 weeks ago

Hi, I've got trouble understanding Argo CD integration known limitation: https://github.com/jkroepke/helm-secrets/wiki/ArgoCD-Integration#known-limitations What exactly does "External Chart and local values" mean? Problematic Application manifest looks like this:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: ingress-nginx
  namespace: argocd
spec:
  project: default

  destination:
    server: https://kubernetes.default.svc
    namespace: ingress

  source:
    repoURL: https://kubernetes.github.io/ingress-nginx
    targetRevision: 4.0.1
    chart: ingress-nginx

    helm:
      releaseName: ingress-nginx
      valueFiles:
        - secrets://secrets.yaml
        - values.yaml

  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
    - CreateNamespace=true

Where does the secret.yaml file come from in above example?

jkroepke commented 3 weeks ago

https://kubernetes.github.io/ingress-nginx

Thats what I mean with "External Chart and local values"

Typically, values are stored in a local git repository. The issue here if you are reference a helm chart from an external location, e.g. not your git repo, then it's not possible to declare local values like secrets://secrets.yaml.

Where does the secret.yaml file come from in above example?

No where. The example above links to a secrets.yaml which not exists in that context. It never can be working.

jacek-jablonski commented 3 weeks ago

Thanks @jkroepke. So as I understand this limitation now, it is not a limitation of Argo CD + helm secrets, but only a limitation of Argo CD itself. Without using multi source application it is not possible to declare application that has external chart and values stored in a local git repo. Am I right?