"End-to-End CI/CD Pipeline with Docker, Kubernetes, Helm, and ArgoCD on AWS"

πŸš€ CI/CD Pipeline with Docker, Kubernetes, Helm, and ArgoCD on AWS – Real-World Setup

In this blog, I walk through how I built a real-world CI/CD pipeline using industry-standard tools: Docker, Kubernetes (EKS), Terraform, Helm, and ArgoCD. This is the kind of setup used by top companies to deploy microservices with zero downtime.


🌐 1. Project Overview

We’re deploying a sample Node.js application with:

  • Dockerized app

  • Infrastructure provisioned via Terraform

  • Kubernetes cluster on AWS (EKS)

  • Helm for deployment packaging

  • GitHub Actions for CI

  • ArgoCD for automated deployment (CD)


🧱 2. Infrastructure Setup with Terraform

Used Terraform to provision:

  • VPC

  • EKS cluster

  • IAM roles

terraform init
terraform apply

🐳 3. Dockerize the App

FROM node:18
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]

☸️ 4. Kubernetes Deployment with Helm

Created a Helm chart to package Kubernetes manifests. Helm makes it easy to manage and upgrade deployments.

helm install myapp ./helm/myapp

βš™οΈ 5. GitHub Actions CI Pipeline

This GitHub Actions workflow builds a Docker image whenever you push code to the main branch and pushes it to Docker Hub.

yamlCopyEdit# .github/workflows/docker-build.yml
name: CI Pipeline

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Build Docker Image
        run: docker build -t myapp .

      - name: Push to Docker Hub
        run: docker push myapp

πŸ” 6. Continuous Deployment with ArgoCD

ArgoCD is a declarative, GitOps continuous delivery tool for Kubernetes. It automatically syncs changes from your Git repository to your Kubernetes cluster.

  • Automatically detects new commits in your GitHub repo

  • Visual UI to track sync status, health, and app logs

  • Follows GitOps principles to maintain cluster state

Once configured, all changes pushed to GitHub are automatically deployed via ArgoCD.


πŸ“Š 7. Monitoring with Prometheus & Grafana

For observability, I integrated Prometheus and Grafana into the Kubernetes cluster:

  • Prometheus scrapes metrics from the app and cluster

  • Grafana provides real-time dashboards and visualizations

  • Useful for tracking CPU, memory, pod health, and traffic

Monitoring is essential for diagnosing performance issues and maintaining uptime.


βœ… Conclusion

This CI/CD pipeline replicates a real production-grade environment. I used tools that companies like Netflix, Spotify, and Uber use in real DevOps workflows.

This project helped me strengthen:

  • Infrastructure as Code with Terraform

  • GitOps mindset with ArgoCD

  • Kubernetes and Helm deployments

  • CI/CD automation with GitHub Actions

πŸ‘‰ Stay tuned β€” I’ll soon write a part 2 with Canary Deployments and Auto Scaling.

πŸ”— Connect with Me

If you're hiring or working on similar DevOps projects, feel free to connect!

πŸ“§ kartheekyarllagadda5@gmail.com
🌐 kartheek.hashnode.dev

  • Kubernetes

  • Docker

  • CI/CD

  • Terraform

  • AWS

  • Helm

  • ArgoCD

0
Subscribe to my newsletter

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

Written by

kartheek yarlagadda
kartheek yarlagadda