Argo CD with Kubernetes and GitOps

Anubhav Chaturvedi
5 min readFeb 24, 2023

--

Welcome to my blog! Today, I want to introduce you to a powerful tool for managing your Kubernetes applications: Argo CD. Argo CD is a GitOps-based continuous delivery tool that allows developers to declaratively manage their application deployments by using git as the source of truth for their desired application state.

With Argo CD, you can easily deploy, update, and manage your applications in a Kubernetes cluster. By using git as the source of truth, you can ensure that the deployed application always matches the desired state defined in git and that everyone on your team is working with the same version of the application. This helps to promote collaboration and transparency in the deployment process.

In addition to its core functionality, Argo CD also provides a number of additional features such as rollback, history, and access control, that makes it a complete solution for your application deployment needs.

In this blog, I will be discussing Argo CD and its features, how it can be installed, and its configurations. So, stay tuned for more updates, and do let me know if you have any questions or feedback.

Argo CD has several features that make it a powerful tool for managing Kubernetes applications:

  1. GitOps-based: Argo CD uses git as the source of truth for the desired state of the application, ensuring that the deployed application always matches the desired state defined in git. This helps to promote collaboration and transparency in the deployment process.
  2. Declarative management: Argo CD uses a declarative approach to manage application deployments, which allows for easy rollbacks and makes it simpler to understand the desired state of the application.
  3. Continuous delivery: Argo CD automatically detects changes in the git repository and updates the deployed application accordingly, helping to ensure that the deployed application is always up to date.
  4. Rollback: Argo CD allows you to easily roll back to a previous version of the application by using the history feature.
  5. Access control: Argo CD allows you to control access to the application deployments by setting up role-based access control (RBAC) and providing audit logging.
  6. Multi-cluster and Multi-tenancy: Argo CD can be used to manage applications across multiple clusters and multiple tenants.
  7. Visualization and reporting: Argo CD provides visualization of the application deployments and a reporting feature that allows you to see the history of deployments and rollbacks.
  8. Extensible: Argo CD provides a way to extend its functionality by adding custom resources and controllers.
  9. CLI and UI: Argo CD provides both a command-line interface (CLI) and a user interface (UI) for managing application deployments, making it easy for developers to use.
  10. Open-source: Argo CD is open-source and is actively maintained by the community.

These features make Argo CD a comprehensive and powerful tool for managing Kubernetes applications and promoting a GitOps workflow in your organization.

Let's start by installing Argo CD;

Step 1: To install Argo CD, we must first install Docker and Kubernetes. Let’s put them in one by one. To install docker, run the command

sudo apt-get install docker.io

then Run the docker version to check whether the docker is installed or not:

Step 2: Let’s install minikube and kubectl, two Kubernetes utilities, after Docker. Minikube can be downloaded using the following methods:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

Step 3: Instlall minikube using:

sudo install minikube-linux-amd64 /usr/local/bin/minikube

Step 4: After minikube has been installed, you can start a cluster to install Argo CD. To begin a new cluster, enter the following command:

Step 5: Now, let’s Install Argo CD using HELM. Run the following commands to install helm in your system:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

Step 6: Run the following commands to download and install Argo CD in your system:

git clone https://github.com/argoproj/argo-helm.git
cd argo-helm/charts/argo-cd/
kubectl create ns myargo
helm dependency up
helm install myargo . -f values.yaml -n myargo
kubectl port-forward service/myargo-argocd-server 8090:80 -n myargo –address 0.0.0.0

Step 7: Now go to localhost:8080 or remoteip:8080 to access the UI of Argo CD.

Step 8: To generate a password, execute the following command. The administrator username is the default.

kubectl -n myargo get secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 –d

Congratulations! Argo CD has been successfully installed on your system.

I wrote the following code in the application.yaml file:

Step 9: Apply the configuration file with kubectl apply -f application.yaml and you should get the following screen:

I hope this blog was informative and provided you with the details you required. If you have any questions while reading the blog, message me on Instagram or LinkedIn. Special credits to my team member — Gaurav and Krisha Amlani.For any kind of work related to DevOps, Site Reliability you can contact me at helpmeanubhav@gmail.com

Thank You…

--

--

Anubhav Chaturvedi
Anubhav Chaturvedi

Written by Anubhav Chaturvedi

Linux & DevOps Geek, Blockchain Developer ,Statistics & Data Nerd ,Solutions architect, passionate hands on instructor . High on Athletics and Travel