Best Practices for Managing Cluster Architecture with ArgoCD in a Multi-Environment Setup

0
4
Asked By TechNinja92 On

Hey folks! I'm transitioning to a GitOps approach using ArgoCD and need some advice on managing my cluster architecture and shared components across multiple environments, like SIT, UAT, and PROD. I've already set up ArgoCD in all my clusters, and I'm considering using a single repository named `kubernetes-configs` that would hold all the base configurations necessary for each cluster — essentially a foundational layer for the architecture.

I'm wondering what specific versions of services like Redis, Kafka, and MySQL each environment should run. My idea is to use this repository to allow ArgoCD to automatically apply updates. While I primarily utilize Helm for these components, I'm a bit worried about the potential mess of creating individual ArgoCD applications for each Helm chart. Or is that actually manageable?

As an alternative, I'm thinking about using Kustomize, where I could define the ArgoCD application manifests within each overlay that points to the appropriate Helm directories. However, I'm on the fence if I'm overcomplicating this whole setup. If anyone has examples or suggestions on how to streamline this and efficiently promote changes across environments, I would greatly appreciate it!

2 Answers

Answered By DevGuru88 On

I totally understand where you're coming from! To tackle what you're describing, I developed something called [make-argocd-fly](https://github.com/Karandash8/make-argocd-fly). If you have any questions, feel free to reach out to me here or on GitHub.

TechNinja92 -

That sounds intriguing! We've built something somewhat similar with Helmfile, but it's pretty slow. Caching hasn't been great either. The market could definitely benefit from a tool like this! I'll check it out when I can.

Answered By KostisCodeFresh On

I wrote a comprehensive guide on this topic! It assumes you're using a central Argo CD instance and covers ApplicationSets along with Cluster labels. You can find examples for both Helm and Kustomize in it. Here’s the link: [Codefresh Guide](https://codefresh.io/blog/argocd-clusters-labels-with-apps/). Plus, there's an associated Git repo here: [Multi-App Multi-Value ArgoCD](https://github.com/kostis-codefresh/multi-app-multi-value-argocd).

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.