Getting Started With ArgoCD
Getting Started With ArgoCD
Simple Workflow
Advantages of ArgoCD:
• Open-Source project.
• Actively contributed to by Akuity, Black Rock, CodeFresh, Intuit, and Red Hat.
Architecture:
API Server: - The ArgoCD API server is a critical component that exposes a REST API for
communication with the Web UI, CLI, and CI/CD systems.
Repository Server: The Repository Server in ArgoCD is an internal service responsible for
handling the Git repository that stores application manifests.
➢ Maintaining a Local Cache: It keeps a local copy of the Git repository to ensure
faster access and processing of manifests.
2. State Comparison: Compares the current, live state of applications with the
desired state defined in the Git repository.
3. Detecting OutOfSync State: Identifies when an application's live state is
OutOfSync with its desired state.
Dex is an open-source identity provider (IdP) used in ArgoCD for authentication. It acts as a
bridge between ArgoCD and external identity providers, enabling Single Sign-On (SSO).
Key Features:
2. OIDC Provider:
Dex provides OpenID Connect (OIDC) tokens that ArgoCD uses for user
authentication.
Install Argo CD in a namespace other than the default ArgoCD, you can use Kubectl to
apply a patch that updates the ClusterRoleBinding to reference the correct namespace for
the ServiceAccount. This ensures that the necessary permissions are correctly set in your
custom namespace
1)Install Argo CD in a custom namespace and ensure the correct permissions are set for
the ServiceAccount, you can follow these steps:
After the installation, you'll need to patch the ClusterRoleBinding to update the Service
Account’s namespace.
--patch '{"subjects":[{"kind":"ServiceAccount","name":"argocd-application-
controller","namespace":"argocd'
To verify if Argo CD is installed correctly, you can check the pods in your custom
namespace:
This ensures that Argo CD's permissions are correctly set up for the ServiceAccount in your
custom namespace.
Username: admin
Let discuss more on how to create project and how to host application on multiple cluster
together.
Then we can create a project