Scalable Application Deployment on AWS EC2 with ArgoCD and KIND (Kubernetes).

Application Architecture

Architecture diagram

  • Launch an AWS EC2 instance.

  • Install Docker and Kind.

  • Create a Kubernetes cluster using Kind.

  • Install and access kubectl.

  • Set up the Kubernetes Dashboard.

  • Install and configure Argo CD.

  • Connect and manage your Kubernetes cluster with Argo CD.

  • Create a namespace for Argo CD:
kubectl create namespace argocd
  • Apply the Argo CD manifest:
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

  • Check services in Argo CD namespace:
kubectl get svc -n argocd
  • Expose Argo CD server using NodePort:
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
  • Now the argocd-server is running on NodePort.

  • Forward ports to access Argo CD server:
kubectl port-forward -n argocd service/argocd-server 8443:443 &hkubectl port-forward -n argocd service/argocd-server 8443:443 &h

  • Argo CD Initial Admin Password

kubectl get secret -n argocd argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d && echo

In ArgoCD we need to add cluster, application, connect to GitHub and deploy.

kubectl port-forward svc/kubernetes-dashbo ard -n kubernetes-dashboard 8080: