Deploy application on Argocd

Shreyash BhiseShreyash Bhise
2 min read

What Is Argo CD?

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.

  • Declarative : A system managed by gitops must have its desired state expressed declaratively.

  • Versioned and Immutable : Desired state is stored in a way that enforces immutability , versioning and retains a complete version history.

  • pulled automatically : Software agents automatically pull the desired state declarations from the source.

  • Continuously reconciled: Software agents continuously observe system state and attempt to apply the desired state.

Architecture of Argocd:

  • Repo Server: In the context of Argo CD, the Repo Server is a component responsible for interacting with the Git repositories that store your application and configuration manifests.

  • The Repo Server watches the Git repositories for changes and fetches updates. It then provides this information to the Argo CD Controller.

  • Application Controller (Argo CD Controller):

    • The Application Controller, also known as the Argo CD Controller, is the core component of Argo CD responsible for managing and reconciling the state of applications deployed on Kubernetes.

    • API Server:

      • In Kubernetes, the API Server is a critical component of the control plane. It provides the API for interacting with the Kubernetes cluster.
  • Dex (Identity and Authentication Provider):

    • Dex is an open-source identity and authentication provider commonly used in Kubernetes clusters.

    • Redis : Is a open -source in-memorydata storethat is often refered to as a data structure server.

  • Advantages of gitops:

  • security

  • versioning (track of changes)

  • auto upgrades

  • auto healing of unwanted changes

  • continuous reconciliation

Argo CD UI

1. Install Argo CD

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl get pods -n argocd -w
kubectl get svc -n argocd

kubectl edit svc argocd-server -n argocd

Note: In type section change ClusterIP to NodePort

minikube service list -n argocd
minikube srvice argocd-server argocd

Note: After that you can copy the url and paste it on your browser

kubectl get secret -n argocd
kubectl edit secret argocd-initial-admin-secret -n argocd

Note: Know copy the password and use the following command to decode the password and username is admin


echo (your password) | base64 --decode

Step 1: Then click on create application

Step 2: You can refer this url

https://github.com/argoproj/argocd-example-apps/tree/master/guestbook

1
Subscribe to my newsletter

Read articles from Shreyash Bhise directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Shreyash Bhise
Shreyash Bhise

*Shreyash Bhise | Aspiring Mern Stack Developer and DevOps enthusiast,