aws / aws/containers-roadmap

[EKS] [request]: Add support for Plugin Generator for ApplicationSets in EKS Capabilities ArgoCD

Open
#2,795 0 comments 0 reactions 1 assignee Claimed by @jlbutler View on GitHub
EKS EKS Capabilities Proposed Under consideration
Dominant language
Shell
Stars
5.4k
Forks
334
PR merge metrics
No merged PRs in 30d

Description

### Community Note

* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment

**Tell us about your request**
In EKS Capabilities ArgoCD you can define ApplicationSets using ArgoCD generators. All built-in ArgoCD generators seem to be supported, except for the Plugin Generator. The Plugin Generator allows people to write custom logic to generate applications that should be deployed.

For instance, if you have a third party tool to create and manage test environments, a Plugin Generator can be used to integrate this tool with ArgoCD. In our case, we would like to monitor [GitLab review apps](https://docs.gitlab.com/ci/review_apps/) with auto stop functionality using our own Plugin Generator.

**Which service(s) is this request for?**
EKS

**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
The Plugin Generator is one of ArgoCD's built-in generators. We deployed our own plugin, made it available to the AWS-managed ArgoCD instance and created an ApplicationSet. It all seems to work fine, but eventually we got the following error: `error getting plugin from generator: error fetching ConfigMap: unable to get: (...) because of unknown namespace for the cache`.

The [plugin endpoint configuration is defined in a ConfigMap](https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Generators-Plugin/#add-a-configmap-to-configure-the-access-of-the-plugin) and ArgoCD does not seem to be able to access it. We know that ArgoCD can read Kubernetes Secrets from the `argocd` namespace, because we got other generators working (SCM Generator, Pull Request Generator) that read secrets from that namespace. So conceptually I'd say it could also work this way for ConfigMaps.

Please note that I'm not referring to argocd-cm, argocd-params, and other ArgoCD instance configuration ConfigMaps. I'm also not referring to ArgoCD Config Management Plugins. I know those features cannot be used in AWS-managed ArgoCD. That's clearly stated in the documentation and that makes sense. I'm talking specifically about ConfigMaps in the `argocd` namespace to configure ArgoCD Plugin Generators.

**Are you currently working around this issue?**
Currently, we just use the Pull Request Generator instead and we implemented a work-around in GitLab to manage test environments using merge request labels. This however means that we cannot easily use the `auto_stop` functionality and our testers can only deploy the latest build within the merge request context.

For temporary environments that are not related to pull requests/merge requests, we have no solution yet. We just decided to keep the environments running for now.

**Additional context**

**Attachments**

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.