Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

argocd cli needs to work on multi-source apps #12318

Open
PerfiX opened this issue Feb 7, 2023 · 23 comments
Open

argocd cli needs to work on multi-source apps #12318

PerfiX opened this issue Feb 7, 2023 · 23 comments
Assignees
Labels
enhancement New feature or request multi-source-apps Bugs or enhancements related to multi-source Applications.

Comments

@PerfiX
Copy link

PerfiX commented Feb 7, 2023

Summary

argocd cli does not work on multi-source apps at the moment

Motivation

argocd multi-sources are a wonderful enrichment. Unfortenately the argocd cli (I used argoproj/argocd:v2.6.0) isn't able to sync multi-source apps.

FATA[0000] argocd cli does not work on multi-source app

Is it planned to add this feature?

@PerfiX PerfiX added the enhancement New feature or request label Feb 7, 2023
@crenshaw-dev crenshaw-dev added the multi-source-apps Bugs or enhancements related to multi-source Applications. label Feb 7, 2023
@blakepettersson
Copy link
Member

That's definitely the plan, AFAIK it's targeted for 2.7.

@kksudo
Copy link

kksudo commented Mar 9, 2023

Is there any chance to start syncing applications (like argocd sync cmd) not through the UI for multi-source apps?

@njohnstone2
Copy link

Is there a rough ETA for when we could expect v2.7? I'm planning to use the sync and set commands to automate version promotion between environments as part of a CI pipeline, but this is blocking me from being able to move to argoCD from an existing CD solution.

@kksudo
Copy link

kksudo commented Mar 14, 2023

Is there a rough ETA for when we could expect v2.7? I'm planning to use the sync and set commands to automate version promotion between environments as part of a CI pipeline, but this is blocking me from being able to move to argoCD from an existing CD solution.

Argo CD Roadmap

Release 2.7 (2023-5-1)

@reginapizza reginapizza self-assigned this Mar 28, 2023
@Yaytay
Copy link

Yaytay commented Mar 29, 2023

Is this still targeted for 2.7?
If I'm reading correctly it's not in RC1.
I'd be happy to help test a candidate of this.

@reginapizza
Copy link
Contributor

@Yaytay you are correct, it is not in RC1. I'm able to start working on the proposal next week but it will still take some time to have it approved and then implemented. I think it's more likely to go into 2.8. I will be bringing this up in the community meeting tomorrow.

@talitz
Copy link
Contributor

talitz commented May 3, 2023

Hi, are there any recent updates about this feature?

@TechDawg270
Copy link

TechDawg270 commented Jun 1, 2023

To be able to use multiple source apps but not use the CLI for automation based on that setup is a big deal in my opinion, and it does not appear to be addressed as of v2.7. Shouldn't this be a bug rather than enhancement? I wonder how this works using the UI when you hit "sync" and the magic happens

@crenshaw-dev
Copy link
Collaborator

We gated CLI actions on multi-source apps behind that error because we were concerned that certain CLI commands would have surprising behavior when encountering a multi-source app.

I think we could selectively un-gate the sync command, because I can't imagine any surprising misbehavior. Other commands will need to be analyzed and either un-gated or fixed on a case-by-case basis.

@reginapizza
Copy link
Contributor

FYI I started on a proposal for this yesterday, should have it up soon!

@TechDawg270
Copy link

Related question - From what I have attempted and gather unless mistaken based on that is that this also renders argocd app set ... somewhat useless when using multiple repo sources. It looks like I have to run the command from where the Helm chart lives, and when I reference the values file via a relative file path I get the error <values file> resolved to outside repository root. It seems like this would go back to gating CLI commands for multi-source apps and isn't necessarily unexpected behavior based on that

@aarthjo
Copy link

aarthjo commented Jun 27, 2023

Thanks a lot @reginapizza because we are very frustrated ;-) The "sync" command works between ArgoCD server 2.7.6 and ArgoCD CLI 2.5.19 but not with the last version of CLI. It's a feature highly anticipated by us because this block the CI/CD processes.

Thanks all for your work

@john-jam
Copy link

Possible related comment: When using argocd app set with -p option to update a value, only the first source in the sources list is updated/reachable. Is there currently a way to update the values of the second source in the list?

For example, updating values for values2.yml for repo2:

  sources:
    - repoURL: https://github.com/user/repo1.git
      path: helm_chart1
      helm:
        valueFiles:
          - values1.yaml
    - repoURL: https://github.com/user/repo2.git
      path: helm_chart2
      helm:
        valueFiles:
          - values2.yaml

@njohnstone2
Copy link

The roadmap linked above shows this is currently targeted for Release 2.9 (2023-11-6). Hopefully it makes the cut as its been getting pushed back since 2.7 🙏

@s7an-it
Copy link

s7an-it commented Jul 17, 2023

This was initially set for 2.8, a lot of people jumped on the multi-source train and it kind of was left half-baked. I think a lot of less priority items were handled this release so is kind of disappointing that this was not prioritized. I guess is time for me to fallback to api calls can't afford to wait another quarter. Basically I think very tiny portion of people are impacted that much, mostly people with CI syncs and long auto-sync periods.

@crenshaw-dev
Copy link
Collaborator

I think a lot of less priority items were handled this release so is kind of disappointing that this was not prioritized.

Speaking just for me and not all maintainers: I generally give priority to open pull requests before issues (even high priority issues), which is why some changes make it and not others: it was high enough priority for someone to write the code. The Roadmap is not a guarantee by any person or organization that they will complete a feature by a certain date - that kind of guarantee would have to be negotiated (and almost certainly paid for) separately.

There is also a documented path for users to become contributors and then maintainers. Having more maintainers available to help review in-flight work would free up development time for bugfixes.

I see that someone opened a PR to un-gate the sync command. I'll try to review ASAP. If merged, I'll cherry-pick it to patch releases so you don't have to wait another quarter.

@crenshaw-dev
Copy link
Collaborator

argocd app sync now works for multi-source apps when neither --local nor --revision are set. The fix will be in these versions:

  • 2.8.0-rc5 (queued)
  • 2.7.8 (released)
  • 2.6.13 (queued)

@lhriley
Copy link

lhriley commented Jul 19, 2023

I was just able to test this out using the 2.7.8 version from brew upgrade argocd and it works with backwards compatibility for 2.6.x which we are running.

Thanks for the extra effort @crenshaw-dev

@s7an-it
Copy link

s7an-it commented Jul 20, 2023

Great, thanks a lot, I will need some time fully testing it out as for me this unlocks a lot of pending changes like move away from ots model, will also provide feedback once done and I agree with the points above, though didn't thought about some of the options which look interesting like the paid one.

@jcogilvie
Copy link

Seconding @TechDawg270 's question. Is there a way to target the second or third (or every) source with argocd app set?

@crenshaw-dev
Copy link
Collaborator

Not currently. That feature still needs to be designed/implemented.

@crenshaw-dev
Copy link
Collaborator

crenshaw-dev commented Oct 31, 2023

Summary of what I think needs to be done.

Done Command Flag(s) Notes
argocd app sync
argocd app sync --local Not sure what the holdup is here, maybe it just works
argocd app sync --revision Need to be able to set multiple revisions
argocd app diff --revision Need to be able to set multiple revisions
argocd app manifests --revision Need to be able to set multiple revisions
argocd app history Need to display history of all sources
argocd app rollback Need to the ability to roll back multiple sources
argocd app set Need to be able to specify which_source params are being set
argocd app unset Need to be able to specify which_source params are being set

@lauragra-y
Copy link

@crenshaw-dev Is there a plan for that work at all? In particular argocd app sync --local for a multisource app would be very useful for us.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request multi-source-apps Bugs or enhancements related to multi-source Applications.
Projects
Status: Backlog
Development

No branches or pull requests