ArgoCD in multiple environments

9/25/2021

I started creating CI/CD pipelines in a new project. We using Codefresh as a CI and ArgoCD for CD. Each microservice is managed by Helm chart and all the charts are saved in one Github repository for ArgoCD.

For now, the pipeline builds the docker image and push it to ECR and then make a commit to the chart Github repository. The commit changes the app version and image tag in the values file in accordance to the trigger (for develop branch- values-dev.yaml, for master branch - values-prod.yaml)

I am not sure if it is the best practice, and I have some open issues.

  1. In this situation I need another branch for the Helm chart GitHub repository? Cause when I will change the app version it will affect all the ArgoCD in all environments. Maybe I need to make the commit in the pipeline for another branch and for prod only make pull request. But then I do not see why I need values file for each environment.

  2. About packaging the Helm chart, what is the best practice? Create another pipeline that each change in the main branch of Helm chart GitHub repository package it, test and then upload to repository?

  3. What the most recommend Chart repository? I thought of using the Github pages.

Thanks

-- daniel1994
argocd
continuous-deployment
continuous-integration
kubernetes
kubernetes-helm

0 Answers