What is Argo CD
Over the years, most of us are using the same separation in terms of the environments of an application, which are divided into development, test, staging, and production. Representing these in a Kubernetes differs in many ways and depends on many other factors like size of the team and budgeting. One of these could be different clusters per environment or another one a separation within one cluster by namespaces. In any of these, we usually create a new namespace for the application with the necessary deployment resources and add whatever is needed to configure our application for an environment (config maps, secrets, ingress, and so on)
The drawback with the approach we described above is that there will be configuration drift over time. For example, our development cluster or namespace will have the latest development version of the application or changes in Kubernetes resources like network policies, but we will need to manually apply over all the changes to the rest...