Skip to content

Latest commit

Β 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ DevOpsified Learn Git Branching

Docker Kubernetes Helm GitHub Actions ArgoCD NGINX

Architecture


🧠 Project Overview

DevOpsified Learn Git Branching is an enhanced version of the Learn Git Branching project, redesigned as a complete DevOps and GitOps implementation.

Instead of simply running the application locally, this project demonstrates how a modern application is developed, containerized, deployed, automated and continuously delivered using cloud-native tools.

The project covers every stage of the software delivery lifecycle including Docker, Kubernetes, Helm, GitHub Actions, Argo CD and GitOps deployment strategies.

demo-gif


πŸ“‚ Project Directories

Folder Description
πŸ“ assets Images, icons, branding and static assets
πŸ“ src Source code of DevOpsified Learn Git Branching
πŸ“ build Production build
πŸ“ scripts Helper scripts
πŸ“ helm Helm Chart for Kubernetes deployment
πŸ“ k8s Kubernetes Manifests
πŸ“ .github/workflows GitHub Actions CI Pipeline
πŸ“ generatedDocs Auto generated documentation
πŸ“„ Dockerfile Multi-stage Docker image
πŸ“„ package.json Node project dependencies
πŸ“„ vite.config.js Vite configuration
πŸ“„ vercel.json Vercel deployment configuration
πŸ“„ kind-config.yaml Kind cluster configuration

🎯 Objectives

  • Convert Learn Git Branching into a DevOps project
  • Dockerize the application
  • Deploy on Kubernetes
  • Package deployment using Helm
  • Implement CI using GitHub Actions
  • Implement GitOps CD using Argo CD
  • Deploy on Kind Kubernetes Cluster
  • Deploy frontend using Vercel
  • Automate Helm image updates
  • Demonstrate complete DevOps workflow

πŸ”€ End-to-End DevOps Workflow

image


πŸ”§ Tech Stack

Layer Technology Purpose
Frontend HTML, CSS, JavaScript Interactive Git Learning
Build Tool Vite Frontend Build
Container Docker Containerization
Orchestration Kubernetes Container Orchestration
Package Manager Helm Kubernetes Packaging
CI GitHub Actions Continuous Integration
CD Argo CD GitOps Continuous Delivery
Registry Docker Hub Container Registry
Local Cluster Kind Local Kubernetes
Hosting Vercel Frontend Hosting
Source Control GitHub Version Control

🐳 Docker Implementation

The application is containerized using a multi-stage Docker build.

Benefits

  • Lightweight Image
  • Faster Deployment
  • Portable
  • Consistent Environment
  • Easy Distribution

Docker Workflow

Application
      β”‚
Docker Build
      β”‚
Docker Image
      β”‚
Docker Hub
      β”‚
Kubernetes Deployment

☸️ Kubernetes Implementation

The application is deployed on a Kind (Kubernetes in Docker) cluster using Kubernetes manifests.

Kubernetes Resources

Resource Purpose
Deployment Manages Pods
Service Exposes the application
Ingress Routes external traffic
Namespace Resource isolation

Kubernetes Architecture


Internet
β”‚
β–Ό
Ingress
β”‚
β–Ό
Service
β”‚
β–Ό
Deployment
β”‚
β–Ό
Pods
β”‚
β–Ό
DevOpsified Learn Git Branching


πŸ“¦ Helm Chart Implementation

Instead of manually applying Kubernetes manifests, this project packages all Kubernetes resources into a Helm Chart.

Helm simplifies deployment by allowing version-controlled, reusable, and configurable Kubernetes applications.

Helm Directory


helm/
β”‚
β”œβ”€β”€ Chart.yaml
β”œβ”€β”€ values.yaml
β”œβ”€β”€ charts/
└── templates/
β”œβ”€β”€ deployment.yaml
β”œβ”€β”€ service.yaml
β”œβ”€β”€ ingress.yaml
β”œβ”€β”€ _helpers.tpl

Helm Advantages

  • Easy deployment
  • Version management
  • Rollback support
  • Parameterized values
  • Reusable templates
  • Production ready

βš™οΈ GitHub Actions CI Pipeline Implementation

This project uses GitHub Actions for Continuous Integration.

Every push to the main branch automatically starts the pipeline.

Pipeline Workflow


Build
β”‚
β–Ό
Code Quality
β”‚
β–Ό
Push
β”‚
β–Ό
Update Helm Chart

1️⃣ Build Stage

The Build stage performs:

  • Install dependencies
  • Build application
  • Verify project structure
  • Generate production build

2️⃣ Code Quality Stage

The Code Quality stage performs:

  • Linting
  • Code formatting checks
  • Static analysis
  • Build verification

3️⃣ Push Stage

The Push stage:

  • Builds Docker image
  • Tags image
  • Logs into Docker Hub
  • Pushes image to Docker Hub

Example:


docker build -t username/devopsified\:latest .

docker push username/devopsified\:latest

4️⃣ Update Helm Chart

After the Docker image is pushed,

GitHub Actions automatically:

  • Updates image tag
  • Commits changes
  • Pushes updated values.yaml
  • Triggers GitOps deployment

This removes manual deployment steps.


πŸ”„ GitOps using ArgoCD Implementation

Argo CD continuously watches the GitHub repository.

Whenever Helm values change,

Argo CD detects the update and synchronizes the Kubernetes cluster automatically.

No manual deployment commands are required.

GitOps Flow


GitHub
β”‚
β–Ό
Updated Helm Chart
β”‚
β–Ό
Argo CD
β”‚
β–Ό
Sync
β”‚
β–Ό
Kind Cluster
β”‚
β–Ό
Rolling Update


πŸ“‚ Folder Structure


DevOpsified-Learn-Git-Branching/
β”‚
β”œβ”€β”€ .github/
β”‚ └── workflows/
β”‚
β”œβ”€β”€ assets/
β”‚
β”œβ”€β”€ build/
β”‚
β”œβ”€β”€ generatedDocs/
β”‚
β”œβ”€β”€ helm/
β”‚
β”œβ”€β”€ k8s/
β”‚
β”œβ”€β”€ scripts/
β”‚
β”œβ”€β”€ src/
β”‚
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ package.json
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ vite.config.js
β”œβ”€β”€ vercel.json
β”œβ”€β”€ kind-config.yaml
└── README.md


πŸš€ Features

Application

  • Interactive Git learning platform
  • Custom DevOpsified branding
  • Responsive UI
  • Modern interface
  • Browser-based learning

DevOps

  • Dockerized application
  • Kubernetes deployment
  • Helm packaging
  • GitHub Actions CI
  • GitOps deployment
  • Argo CD automation
  • Kind Kubernetes Cluster
  • Docker Hub integration
  • Vercel deployment

CI/CD Automation

βœ” Automatic Build

βœ” Code Quality Verification

βœ” Docker Image Build

βœ” Docker Hub Push

βœ” Helm Chart Update

βœ” GitOps Deployment

βœ” Continuous Delivery


πŸ“Š Project Architecture

                          Developer
                              β”‚
                              β–Ό
                     GitHub Repository
                              β”‚
                              β–Ό
                     GitHub Actions CI
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β”‚            β”‚            β”‚
                 β–Ό            β–Ό            β–Ό
             Build     Code Quality      Push
                                         β”‚
                                         β–Ό
                              Docker Hub Registry
                                         β”‚
                                         β–Ό
                              Update Helm Chart
                                         β”‚
                                         β–Ό
                                 GitHub Repository
                                         β”‚
                                         β–Ό
                                     Argo CD
                                         β”‚
                                         β–Ό
                                 Kind Kubernetes
                                         β”‚
                                         β–Ό
                                   Helm Release
                                         β”‚
                                         β–Ό
                                  Kubernetes Pods
                                         β”‚
                                         β–Ό
                         DevOpsified Learn Git Branching

🎯 Learning Outcomes

Through this project, you will understand:

  • Git Fundamentals
  • Docker Containerization
  • Kubernetes Concepts
  • Helm Package Management
  • GitHub Actions
  • CI/CD Pipeline Design
  • GitOps Principles
  • Argo CD
  • Container Registries
  • Kubernetes Networking
  • Ingress Controllers
  • Continuous Deployment

πŸ‘¨β€πŸ’» Author

NIHAL N β€” DevSecOps & Cloud Engineer

LinkedIn


⭐ If this project helped you learn DevSecOps, give it a star and share it with your team!

About

A production-ready GitOps implementation of Learn Git Branching using Docker, Kubernetes, Helm, GitHub Actions, Argo CD, Kind and Vercel.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages