argoproj / argo-cd

Declarative Continuous Deployment for Kubernetes
https://argo-cd.readthedocs.io
Apache License 2.0
17.46k stars 5.3k forks source link

GPG signature validation doesn't work on multi-source values #14773

Open shmargum opened 1 year ago

shmargum commented 1 year ago

Checklist:

Describe the bug

An application with helm chart from source A and values from source B says target revision in source B is not signed when it is indeed signed.

To Reproduce

sources:
  - repoURL: 'git@github.com:my-org/my-repo-1.git'
    path: charts/test
    targetRevision: master
    helm:
      valueFiles:
        - values/test.yaml
        - $values1/charts/test/values/test.yaml
  - repoURL: 'git@github.com:my-org/my-repo-2.git'
    targetRevision: master
    ref: values1

Expected behavior

Expecting ArgoCD to recognize the commit is signed.

Screenshots

Screenshot 2023-07-28 at 2 15 46 PM Screenshot 2023-07-28 at 2 17 48 PM

Version

v2.7.7+4650bb2.dirty

Logs

Paste any relevant application logs here.
jannfis commented 1 year ago

Thanks. I have a PoC working to support multiple sources among some other new features that I submit shortly along with a proposal.

jannfis commented 1 year ago

Proposal: https://github.com/argoproj/argo-cd/pull/14964

zadjadr commented 5 months ago

I also see an issue with this if we use an external helm chart with values taken from an internal repository.

For example:

Source 2 will always be signed with my GPG key, e.g ABCEXAMPLE while Source 1 is not signed since its a helm repository. Argocd will not sync because the target at Source 1 is not signed.

Is there any workaround for this?