Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitOps Continuous Delivery with Argo CD on Amazon EKS

GitOps deployment project using Argo CD, Kubernetes, Amazon EKS, Docker, and GitHub. The project demonstrates how declarative Kubernetes manifests can drive automated delivery, drift detection, and self-healing in an EKS cluster.

What This Project Demonstrates

  • Provisioning and operating an Amazon EKS cluster for GitOps delivery.
  • Deploying Argo CD into Kubernetes.
  • Defining an Argo CD Application that watches this GitHub repository.
  • Automatically syncing Kubernetes manifests from Git to EKS.
  • Using prune and selfHeal to correct manual drift.
  • Documenting troubleshooting, screenshots, and AWS cost cleanup.

Architecture

Developer commits Kubernetes changes
            |
            v
GitHub repository
            |
            v
Argo CD watches repo path: k8s/
            |
            v
Amazon EKS cluster
            |
            v
Kubernetes deployment and service
            |
            v
Demo application exposed through LoadBalancer

Tech Stack

Area Tools
Cloud AWS, Amazon EKS
GitOps Argo CD
Orchestration Kubernetes, kubectl, eksctl
Containerization Docker, Nginx
Source control GitHub

Repository Structure

.
|-- app/
|-- argocd/
|-- docs/
|-- infra/
|-- k8s/
|-- screenshots/
`-- README.md

Argo CD Application

The Argo CD application lives in:

argocd/application.yaml

Key settings:

syncPolicy:
  automated:
    prune: true
    selfHeal: true
  syncOptions:
    - CreateNamespace=true

This means Argo CD:

  • Automatically applies Git changes to the cluster.
  • Removes resources that no longer exist in Git.
  • Restores the desired state when manual changes create drift.
  • Creates the target namespace when needed.

Deployment Evidence

Evidence Screenshot
EKS cluster active screenshots/01-eks-cluster-active.png
Argo CD pods running screenshots/03-argocd-pods-running.png
Argo CD dashboard screenshots/05-argocd-dashboard.png
Application synced and healthy screenshots/07-argocd-app-synced-healthy.png
Version update committed screenshots/09-github-version-update-commit.png
Version 2 synced screenshots/10-argocd-app-synced-version-2.png
Manual drift created screenshots/12-manual-drift-created.png
Self-healing confirmed screenshots/13-argocd-self-healed.png
AWS cleanup confirmed screenshots/14-aws-cleanup-confirmed.png

Key Commands

Create the EKS cluster:

eksctl create cluster -f infra/eks-cluster.yaml

Install Argo CD:

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

Apply the Argo CD application:

kubectl apply -f argocd/application.yaml

Verify the application:

kubectl get pods -n gitops-demo
kubectl get svc -n gitops-demo

Documentation

What I Learned

  • How Git becomes the source of truth for Kubernetes deployments.
  • How Argo CD syncs Kubernetes manifests from a repository path.
  • How self-healing restores desired state after manual drift.
  • How pruning removes resources that should no longer exist.
  • How to document EKS cleanup to avoid unnecessary AWS charges.

Recruiter Notes

This project demonstrates a modern GitOps workflow with Argo CD and EKS, including automated delivery, drift correction, proof screenshots, troubleshooting notes, and cost-control awareness.

About

GitOps continuous delivery on Amazon EKS with Argo CD automated sync, drift detection, self-healing, Kubernetes manifests, and deployment screenshots.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages