-
Notifications
You must be signed in to change notification settings - Fork 5.7k
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
Multi-source doesn't work with CMPs #12476
Comments
Related to #10432 |
The only field which currently supports referencing another source is |
Maybe of interest: #12471 |
@crenshaw-dev Yes, that's what we're experienced, and it's not exactly the expected behaviour. And unfortunately, despite AVP is only replacing placeholders, it's refusing to work on non-manifests yaml files, which doesn't have a Somehow either chaining in a plugin at the end of renderring the input, or making it possible to resolve the |
@crenshaw-dev Also, if you could please give me a few pointers to the source how |
This is where we pull references sources for Helm: argo-cd/reposerver/repository/repository.go Line 679 in b6cfe67
I don't think I'd want to replicate that kind of code. I think I'd want to do something like what's proposed in #12471. Basically, copy a while external ref into the plugin's sources before running the plugin. |
@crenshaw-dev That makes sense. Providing a |
I'd recommend a copy-based implementation rather than symlink-based. It's more filesystem-heavy, but it avoids concurrency issues (you'd have to lock the referenced repository against reads, because you don't know what the referencing repository is gonna do). It also simplifies path-traversal mitigations (just copy everything and then run a symlink scan over the whole source directory.) |
Not knowing of that work is in progress - I had to make kind of AVP wrapper which is able to pull HELM chart from one (helm) repo and use values files from another (git) one (as well as simple vault paths permissions checks ...) |
Can you show me what the ArgoCD Application looks like when using your wrapper, please? |
wondering about @amorozkin's Application too, in my case the CMP doesn't trigger for sources of type |
Modified @amorozkin's script to be a little bit more generic and added some usage example in this gist |
I have a slightly different use case for this. Each of our helm charts has a templated values file that needs to get populated with inputs from a different repository prior to running
If this feature were implemented we could instead write a config management plugin and avoid a lot of headache and workarounds. |
How is this going? I need that feature for secret and configmap replacing. I did my own replacer that uses kubernetes secrets and configmaps and realize that argocd is the limitation. |
Mid-2024 and here we are - one of the important features does not work. |
Same issue here. End of 2024. The feature doesn't work. |
Checklist:
argocd version
.Describe the bug
The new multi-source feature does not work with CMPs
To Reproduce
Expected behavior
Multi-sources can work with CMPs
Version
Logs
Tried multiple ways.
When trying to "chain" the avp in the sources:
The error is:
When we're trying to handle the helm chart with a plugin, and passing the values simply through en envvar:
The error is quite "funny". Helm template is not able to find the file, and the null values in the template's values are not getting replaced by
<placeholders>
, and the template generation is being terminated byrequire
templating directive, which argocd treats as a successful run, and we're getting nothing but orphaned resources.So, it doesn't really matter with what way, but somehow plugins are needed to do placeholder replacements for secrets management. This is kind of a blocker for us, with the cleanup work that the sources offers (separating deployment logic into charts, and environment specifics into values stored separately).
The text was updated successfully, but these errors were encountered: