đŠī¸ How to deploy applications in an multi-cluster environment distributed across multiple clouds using ArgoCd and its native operators.đŠī¸
Report Bug or Request Feature
This repository serves as an example for using ArgoCD with multi-cluster deployments in different cloud providers.
Before diving into the repository, it's important to understand the following concepts:
The repository is organized as follows:
âââ argocd ## rooot argocd directory
â âââ bootstrap ## bootstrap configs ( secrets , projects etc.)
â â âââ secrets
â â âââ clusters ## clusters as secrets in argocd management cluster
â â âââ repositories ## repositories as secrets in argocd management cluster
â âââ common ## common directory for all applications need to be deployed through all clusters
â â âââ README.md
â â âââ cert-manager
â â â âââ applicationset.yaml
â â âââ demo-app
â â â âââ applicationset.yaml
â â âââ external-dns
â â â âââ applicationset.yaml
â â âââ external-secrets-operator
â â â âââ applicationset.yaml
â â âââ nginx-ingress-controller
â â âââ applicationset.yaml
â âââ envs ## deployment environments( dev, stage , prod etc.) have same structure.
â â âââ stage ## dev/playground environment clusters directory configuration.
â â â âââ aws ## AWS cloud clusters directory configuration.
â â â âââ globals ## Global Env. values for AWS cloud per app ::risk:: impacts all aws clusters in dev env.(disabled)
â â â â â âââ cert-manager ## Cert Manager ( Any Application holding global values for aws cloud ) (feature disabled in repo)
â â â â â â âââ values.yaml ## Global app Values , will be merged with regional values. (feature disabled in repo)
â â â â âââ eu-central-01 ## AWS region specific clusters configuration.
â â â â â âââ cert-manager ## example app also used as namespace value in the applicationn set
â â â â â â âââ git-generator-overides.json ## git file generator for config management of appset, such as chart version
â â â â â â âââ values.yaml ## regional, cloud ,and environment specific values file
â â â â â âââ demo-app
â â â â â âââ git-generator-overides.json
â â â â â âââ kustomization.yaml
â â â â â âââ sample-app.yaml
â â â â âââ us-east-01
â â â âââ azure ## Azure cloud clusters directory
â â â âââ gcp ## GCP cloud clusters directory
â â â âââ globals ## Global dev env values per app ::risk:: impacts all clusters in dev env.(feature disabled in repo)
â â â âââ cert-manager ## Cert Manager ( Any Application holding global values ) (feature disabled in repo)
| â â âââ values.yaml ## Global app Values , will be merged with regional values. (feature disabled in repo)
â â âââ dev
â â âââ aws
â â â âââ eu-central-01
â â â âââ us-east-01
â â â âââ README.md
â â â âââ cert-manager
â â â âââ git-generator-overides.json
â â â âââ values.yaml
â â âââ azure
â â â âââ globals
â â â â âââ README.md
â â â âââ north-europe
â â â â âââ cert-manager
â â â â â âââ git-generator-overides.json
â â â â â âââ values.yaml
â â â â âââ demo-app
â â â â â âââ git-generator-overides.json
â â â â â âââ ingress.yaml
â â â â â âââ kustomization.yaml
â â â â â âââ sample-app.yaml
â â â â â âââ service.yaml
â â â â âââ external-dns
â â â â â âââ git-generator-overides.json
â â â â â âââ values.yaml
â â â â âââ external-secrets
â â â â â âââ git-generator-overides.json
â â â â â âââ values.yaml
â â â â âââ ingress-nginx-controller
â â â â âââ git-generator-overides.json
â â â â âââ values.yaml
â â â âââ west-europe
â â âââ gcp
â â â âââ asia-east1
â â â âââ europe-west1
â â âââ globals
â â âââ README.md
â â
â âââ yamls
âââ charts ## local charts , in case umbrella or custom chart is needed
â âââ external-secrets-operator
â â âââ charts
â â âââ templates
âââ terraform ## just for this repo context , terraform configs for the infra provisioning
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have any suggestion that would make this project better, feel free to fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement" with your suggestion.
âī¸ Don't forget to give the project a star! Thanks again! âī¸
Released under MIT by @ishuar.