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

Improved integration between Terraform and GitOps providers #114

Closed
bryantbiggs opened this issue Apr 13, 2023 · 9 comments · Fixed by #209
Closed

Improved integration between Terraform and GitOps providers #114

bryantbiggs opened this issue Apr 13, 2023 · 9 comments · Fixed by #209
Assignees
Labels
enhancement New feature or request gitops

Comments

@bryantbiggs
Copy link
Contributor

bryantbiggs commented Apr 13, 2023

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or other comments that do not add relevant new information or questions, 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

What is the outcome that you are trying to reach?

Better integration between Terraform and GitOps providers. There are infrastructure resources that are dynamically created by Terraform, and I wish to keep creating those resources in Terraform, but I need to pass their generated values (IDs, ARNs, etc.) over to my GitOps provider for downstream addons/applications to consume those values

Describe the solution you would like

In a perfect world, Terraform does not need to authenticate to the EKS cluster nor access inside the cluster. Terraform creates the necessary AWS infrastructure components, and passes those dynamically generated values over to my GitOps provider.

In addition, I would also like the ability to have the ability to choose between ArgoCD, FluxCD, or any other GitOps providers that may come along. To scope the current problem space - we will focus only on ArgoCD and FluxCD support.

Describe alternatives you have considered

None - this is an improvement over the current setup

Additional context

We often hear feedback from users that they wish to pass more values from Terraform to the GitOps provider via the associated *_helm_config variable. This request is tangentially related in that any dynamically generated values, as well as user provided values, can be passed over to the GitOps provider

@bryantbiggs bryantbiggs added enhancement New feature or request gitops labels Apr 13, 2023
@bryantbiggs
Copy link
Contributor Author

We would like to hear any and all feedback on this topic from the community - please feel free to leave your comments and feedback below - thank you!

@dtherhtun
Copy link
Contributor

We are anticipating the integration of ArgoCD Projects and Applications, similar to v4 blueprints.

@shazib-summar
Copy link

shazib-summar commented Jul 11, 2023

Hi, thank you for working on this and considering community input. Do we have a roadmap regarding the next release/iteration?

@bryantbiggs
Copy link
Contributor Author

You track activity related to the EKS Blueprints projects here https://github.com/orgs/aws-ia/projects/11/views/1?query=is%3Aopen+sort%3Aupdated-desc

@csantanapr
Copy link
Contributor

csantanapr commented Jul 12, 2023

I made some progress in the integration of Terraform and GitOps
You can give it a try here, and provide feedback

Please fork the repos as we are doing braking changes incorporating feedback from the community

@Almenon
Copy link

Almenon commented Jul 25, 2023

Just ran into this issue. The lack of integration is a problem when it comes to upgrading EKS blueprints to v5 from v4, as in v4 you could define argocd_applications to specify a helm repo to bootstrap argocd, but there is no equivalent parameter in v5.

Our setup looks like this:

Terraform code: initializes eks_addons and enable_<chart> charts that should be in all clusters. Also creates argocd and links it to bootstrap git repository.
Helm code: bootstrap git repository points here. We put custom charts here that may not go in every cluster.

@jmreicha
Copy link

I recently was tasked with deploying and managing EKS clusters and started reading up on blueprints and how it all works. When I got everything figured out and working in v4 I heard about the v5 release.

From an outsiders perspective from somebody that just wants a cluster and an Argo install that I can plug my baseline infrastructure charts into, this refactor is incredibly confusing.

Are there any guides/tutorials planned for how to do this? Apologies if I have missed anything but I have searched through docs and find myself going in circles it seems like searching for the relevant information.

@Almenon
Copy link

Almenon commented Aug 17, 2023

Here is my current understanding:

  • We can set create_kubernetes_resources to False to have EKS Blueprints only create the AWS resources. The helm charts will not be deployed. We have to manually configure our argocd resources (helm charts/kustomize/jsonnet/etc.) given the output, or figure out a way to automatically parse the output and and automatically inject that into our argocd resources.
  • We can't point argocd to a bootstrap repo
  • We can't have blueprints and argocd both deploy helm charts, it has to be one or the other.

So we've made progress ~ bullet point 1 is completed by #209. I'll open up a issue for the second two bullet points.

@Almenon
Copy link

Almenon commented Aug 17, 2023

Actually, looks like #226 would solve the last two bullet points.

@bryantbiggs bryantbiggs moved this to Done in EKS Blueprints Dec 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request gitops
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

7 participants