What Is Argo CD?
Argo CD is a declarative, Kubernetes-native GitOps continuous delivery (CD) tool. Argo CD is unique as it can pull updated code from Git repositories and deploy that code directly to Kubernetes resources. On the contrary, external CD tools only permit push-based deployments. Argo CD helps manage both infrastructure configuration and application updates in a single system.
Some of the key benefits and features of using Argo CD are mentioned below:
- Argo CD allows for manual or automatic deployment of applications to a Kubernetes cluster.
- The role-based access control (RBAC) allows for multi-cluster management.
- Moreover, it enables the automatic synchronization of the application state to the most current version of the declarative configuration.
- It supports single sign-on (SSO) with providers such as GitHub, LDAP, Microsoft, GitLab, LinkedIn, OAuth2, OIDC, and SAML 2.0.
- In it there are features for command-line interface (CLI) and a Web user interface.
- It enables you to visualize deployment problems, and detect and edit the configuration error.
Why use Argo CD? By using it:
- We can deploy in different environments and clusters from a single source.
- All Deployment, Istio, or ConfigMap config changes are dynamically and instantly emulated in all production clusters. We can easily monitor synchronizations and their current state dynamically with Argo CD UI and all notifications sent.
- We dispose of the two-sided syncing feature. ArgoCD catches on all changes on the configurations and syncs Kubernetes. Moreover, it apprehends every deviation that appeared in Kubernetes and syncs it back to the desired state. Without this key feature, all Kubernetes resources would be asynchronous until the next deployment.
- Relocating an application from one cluster to another is easily achievable via a single line change in the target cluster.
How to install Argo CD on Kubernetes cluster
First, we head to the link for the Argo CD project. Next, we have to create a separate namespace for the Argo itself.
kubectl create namespace argocd
Afterward, we need to install Argo CD in this namespace as it is shown below:
kubectl apply -n argocd -f
https://raw.githubusercontent.com/argoproj/argo-cd/master/manifests/install.yaml
And then let`s check the deployments:
kubectl get all -n argocd
If the pods are ready, Argo CD is up and running. However, the Argo CD API server is not accessible outside the cluster. We have to resolve this by using post-forward to expose a port to the service and then forward it to the localhost as seen below:
ubectl port-forward svc/argocd-server -n argocd 8080:443
Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080
After that, we can access the API server with the help of localhost:8080.