GitOps-Based DevOps Pipeline with Kubernetes, ArgoCD & CI/CD I’m excited to share my recent project — Civic Issue Reporter, a full-stack application designed to report and track civic/environmental issues, where I implemented a complete end-to-end DevOps workflow using modern cloud-native tools. 🔹 Project Overview The goal of this project was not just to build an application, but to design a production-like deployment system where everything is automated — from code changes to deployment on Kubernetes. 🔹 What I Built • Containerized the frontend and backend using Docker with optimized multi-stage builds • Deployed the application on Azure Kubernetes Service (AKS) using Kubernetes Deployments and Services • Packaged the application using Helm, enabling reusable and environment-based configurations • Implemented GitOps using ArgoCD, where the cluster state is automatically synchronized with the Git repository • Built a CI pipeline using GitHub Actions to build Docker images and push them to Azure Container Registry (ACR) 🔹 End-to-End Workflow 👉 Git Push → GitHub Actions (CI) → ACR → ArgoCD (CD) → Kubernetes Deployment 🚀 This means every code change is automatically built, pushed, and deployed — without manual intervention. 🔹 Key Learning One of the most valuable parts of this project was solving real-world issues like: Handling Azure public IP limits Designing services using ClusterIP for better architecture Understanding how GitOps ensures consistency between desired and actual state 🔹 GitOps in Action For example, when I update the replicas count in values.yaml from 2 to 3 and push the change, ArgoCD detects it automatically, syncs the application, and Kubernetes scales the pods — fully automated. 📂 GitHub Repository: https://lnkd.in/gTHSPmeG This project gave me a strong understanding of how real-world DevOps systems are built using Docker, Kubernetes, Helm, CI/CD, and GitOps. I’m excited to keep learning and building more in the DevOps and cloud space 🚀 #DevOps #Kubernetes #GitOps #ArgoCD #Docker #CICD #Azure #CloudComputing #GitHubProjects #OpenToWork
More Relevant Posts
-
Last week, I shared how I built a CI/CD pipeline using Azure DevOps… But I realized something: 👉 I was still controlling deployments manually. So I started looking into a different approach: 👉 GitOps --- 💡 What is GitOps? GitOps means: «“Git is the single source of truth for your infrastructure and deployments.”» Instead of manually deploying… 👉 You just update Git 👉 And everything else happens automatically --- 🔁 What changed Before (CI/CD): • Pipeline builds & pushes images • Pipeline triggers deployment Now (GitOps): • Pipeline only builds & pushes images • Git becomes the source of truth • Deployment is fully automated --- ⚙️ Where ArgoCD fits To implement GitOps, I used: 👉 ArgoCD It continuously: • Monitors the Git repository • Detects changes (e.g., Helm values update) • Syncs automatically with Kubernetes • Deploys the new version --- 🔄 Full workflow 1️⃣ Code change • Developer pushes code 2️⃣ CI Pipeline • Build + test + scan • Push image to registry 3️⃣ Git update • Update Helm chart / values.yaml 4️⃣ ArgoCD • Detects change • Deploys automatically • Keeps cluster in sync (self-healing) --- 🔥 Why this is powerful • No manual deployments • Full traceability (everything in Git) • Automatic sync & self-healing • Easy rollback (just revert in Git) --- 💡 Mindset shift From: 👉 “Run deployment manually” To: 👉 “Push to Git… and let the system handle everything” --- 🚀 What’s next Now the platform looks like this: • CI/CD ✅ • GitOps ✅ Next step: 👉 Observability & Monitoring Prometheus + Grafana + AlertManager 📊 --- #DevOps #GitOps #ArgoCD #Kubernetes #Helm #CloudNative #PlatformEngineering #SRE #Automation #LearningInPublic
To view or add a comment, sign in
-
-
🚀 DevOps Journey — Day 5: The GitOps Leap 🐙 Yesterday I mastered the HPA control loop. Today, I removed myself from the deployment equation. I moved my laboratory from traditional Push-based CI/CD to a Declarative GitOps model using ArgoCD. 🔬 What changed? Until today, my GitHub Actions pipeline was responsible for "shouting" orders to the cluster (helm upgrade --install). If the connection failed or the runner had issues, the deployment broke. Now, the cluster has its own "brain". 🧠 How it works now CI Phase: GitHub Actions only builds the Docker image and pushes it to GHCR (versioned by SHA). CD Phase (The GitOps way): ArgoCD monitors my Helm charts in Git. Reconciliation: If I change a single line in Git (like increasing replicas), ArgoCD detects the "drift" and pulls the changes into the cluster. 🛡️ The "Self-Healing" Test I decided to play "Chaos Engineering": I manually deleted a Pod and a Service using kubectl. The result? In less than 5 seconds, ArgoCD detected the state didn't match Git and recreated everything automatically. The cluster is now "self-healing". It doesn't care what I do manually; it only obeys the Source of Truth: Git. 🛠️ The "WSL2 vs Networking" Battle It wasn't all easy. Running ArgoCD inside a k3d cluster on WSL2 brought some real-world troubleshooting: MTU issues: Network packets were too large for the WSL tunnel, causing timeouts with GitHub. Liveness Probes: In a local environment, ArgoCD's repo-server needed more "patience" (timeouts increased from 1s to 10s) to handle the load. Lesson: In production, networking and resource constraints are your real enemies. If you don't tune your probes and MTU, your "automated" system becomes a "restarting" system. 🧪 What the lab now demonstrates: ✔ GitOps Workflow: Decoupled CI and CD. ✔ Drift Detection: Absolute consistency between Git and Production. ✔ Manual Override Protection: The cluster reverts unauthorized changes. ✔ Infrastructure as Code (IaC): Everything, from the HPA to the ArgoCD app, is defined as code. This isn't just a deployment anymore. It's an Operating Model. 🧭 Next stop: Making the entire cluster reproducible with Terraform. Building production-style systems in public. From "Push" to "Pull". One reconciliation loop at a time. https://lnkd.in/dPdqK99h #DevOps #Kubernetes #GitOps #ArgoCD #CloudEngineering #PlatformEngineering #SRE #BuildingInPublic #WSL2
To view or add a comment, sign in
-
🚀 GitOps Changed How We Deploy. Here’s the Full Playbook. Traditional deployments are slow, manual, and error-prone. One wrong command → production break. One missed step → downtime. Then came GitOps… and it completely changed how modern DevOps teams ship software. ⚙️ What is GitOps? GitOps is a modern deployment approach where: 👉 Git = Single Source of Truth 👉 Infrastructure + Application configs live in Git 👉 Any change = Pull Request 👉 Deployment = Automated reconciliation No manual kubectl commands. No direct server changes. Everything is version-controlled. 🔥 How GitOps Works (Simple Flow) Developer pushes code to Git Pull Request gets reviewed Merge triggers CI pipeline GitOps controller (ArgoCD / Flux) detects change Cluster automatically syncs to desired state Deployment happens without manual intervention 🚀 💡 Why GitOps is a Game Changer ✔ Fully automated deployments ✔ Rollback with one Git commit ✔ Zero manual server access ✔ Better security & audit trail ✔ Faster release cycles ✔ Production stability improves significantly ⚠️ Reality Check Most companies still struggle with: ❌ Manual deployments ❌ Configuration drift ❌ Environment inconsistencies ❌ No rollback strategy GitOps solves all of these. 🧠 Tools Used in GitOps ArgoCD FluxCD Kubernetes Helm Terraform (for infra layer) GitHub / GitLab 🚀 Final Thought GitOps is not just a tool… It’s a culture shift in DevOps engineering. If your deployment is not Git-driven, you are already behind modern engineering teams. 💬 Want next-level guide? I can create: ✔ GitOps real project (ArgoCD + Kubernetes + Terraform) ✔ Interview Q&A set ✔ Step-by-step implementation roadmap ✔ DevOps training module for your students https://lnkd.in/gd_3gZwX #GitOps #DevOps #Kubernetes #CloudComputing #ArgoCD #FluxCD #CI_CD #InfrastructureAsCode #DevOpsEngineer #SRE #PlatformEngineering #CloudNative #Microservices #Docker #Automation #SoftwareEngineering #TechCareers #SystemDesign #Git #GitHub #CloudArchitecture #DevOpsLife #TechCommunity #Engineering #Learning #CareerGrowth #ITJobs #OpenSource
To view or add a comment, sign in
-
🚀 Built a production-style CI/CD + GitOps pipeline for microservices Over the past few weeks, I focused on designing a cloud-native delivery setup similar to what modern DevOps teams use in production — using GitHub Actions, AWS, Kubernetes, and ArgoCD. Engineered a production-ready system utilising industry-standard architectural patterns to ensure scalability, observability, and long-term maintainability. Here’s what I put together: - Two independent microservices (User & Order) with their own CI pipelines - Automated build and test workflows using GitHub Actions - Container images built using Kaniko and pushed to AWS ECR - A separate GitOps repository to manage Kubernetes manifests - ArgoCD handling deployments using a pull-based model (no direct CI → cluster access) - Deployment flow structured so changes are driven entirely from Git One focus was on removing manual steps. Earlier, deployments involved multiple commands and manual updates. Now, a simple commit triggers the full flow — build, push, manifest update, and deployment. Everything is version-controlled, traceable, and repeatable. Architecture flow looks like this: Code → CI (build & test) → image pushed to ECR → GitOps repo updated → ArgoCD sync → Kubernetes deployment How does the Implementation look like: - GitOps makes deployments predictable — Git becomes the single source of truth - Separating CI and CD avoids tight coupling and improves control - Microservices need independent pipelines to avoid breaking everything at once - Automating the pipeline removes human error more than it saves time 🔗 Repositories: User Service: https://lnkd.in/dXu_zP38 Order Service: https://lnkd.in/dzBqyeYW GitOps Manifests: https://lnkd.in/dkjvXXxJ --- This setup is still evolving, but it gives a clear understanding of how production DevOps systems are actually designed — beyond just running pipelines. #DevOps #GitOps #Kubernetes #ArgoCD #AWS #CI_CD #CloudNative #Microservices
To view or add a comment, sign in
-
-
🚀 DevOps in Action: Kubernetes Pod Monitoring with Shell Script In real-world DevOps, it’s not just about deployments — it’s about visibility, reliability, and quick recovery. Here’s a simple shell script I use to monitor Kubernetes pods and detect issues early 👇 #!/bin/bash set -euo pipefail NAMESPACE="default" LOGFILE="k8s_monitor.log" log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOGFILE" } # Get pods not in Running or Completed state pods=$(kubectl get pods -n "$NAMESPACE" --no-headers | awk '$3!="Running" && $3!="Completed" {print $1}') if [ -z "$pods" ]; then log "All pods are running fine ✅" else log "Found problematic pods ❌" for pod in $pods; do log "Checking pod: $pod" kubectl describe pod "$pod" -n "$NAMESPACE" | grep -i "error" | tee -a "$LOGFILE" done fi 💡 What this script demonstrates: ✅ Kubernetes monitoring using kubectl ✅ Log parsing with awk and grep ✅ Error detection for non-running pods ✅ Timestamp-based logging ✅ Production-ready practices (set -euo pipefail) 🔁 CI/CD Tip: You can integrate this script into a Jenkins/GitHub Actions pipeline step to fail deployments if pods are unhealthy. 👉 That’s how you move from simple scripting to proactive infrastructure monitoring. How do you monitor your Kubernetes workloads? 👇 #DevOps #Kubernetes #ShellScripting #CICD #SRE #Cloud #Monitoring
To view or add a comment, sign in
-
GitOps keeps coming up in Kubernetes discussions, job descriptions, and architecture reviews. But most explanations are vague or skip the important parts. Here is what it actually is: GitOps is a way of managing deployments where Git is the single source of truth. Every change goes through a Git commit. An agent inside your cluster watches the repo and applies changes automatically. The key shift — instead of CI/CD pushing into your cluster, the cluster pulls from Git. This means: → No cluster credentials in your CI/CD pipeline → Every deployment has an audit trail through git log → Rollback = git revert → Someone manually changes something? The agent reverts it → No more configuration drift By 2026, 91% of cloud-native organisations have adopted GitOps (CNCF Annual Survey). It is no longer optional for Kubernetes teams at scale. I wrote a plain-language explanation covering how it works, push vs pull models, GitOps vs CI/CD, when to use it, and which tools to start with. Full post: https://lnkd.in/gtMsA4jU #GitOps #Kubernetes #DevOps #CICD #ArgoCD #Flux #CloudNative #PlatformEngineering
To view or add a comment, sign in
-
🔧 Lab Title: 5 - Main kubectl commands 🚀 Project Steps PDF Your Easy-to-Follow Guide :https://lnkd.in/gRdiBmaz 🔗 GitLab Repo Code:https:https://lnkd.in/gKfqqhiv 🔗 DevsecOps Portfolio:https://lnkd.in/g6AP-FNQ 💼 DevOps Portfolio: https://lnkd.in/gT-YQE5U 🔗 Kubernetes Portfolio:https://lnkd.in/gUqZrdYh 🔗 GitLab CI/CD Portfolio:https://lnkd.in/g2jhKsts Summary: Today, I worked on managing Kubernetes deployments using kubectl. I listed active deployments and pods, deleted MongoDB and NGINX deployments, verified resource cleanup, created a new NGINX deployment with a YAML manifest, and scaled it from 1 to 2 replicas. This reinforced declarative management of workloads and dynamic scaling in Kubernetes. Tools Used: kubectl: Manage and inspect Kubernetes resources via CLI. YAML: Define Kubernetes deployments declaratively. Skills Gained: • Inspect deployments, pods, and replicasets to monitor cluster state 🔍 • Delete deployments and confirm cleanup of related pods and replicasets 🧹 • Create declarative YAML manifests for Kubernetes workloads 📄 • Apply and update deployments using kubectl apply for scaling 🛠️ Challenges Faced: • Ensuring complete cleanup of replicasets after deployment deletion. • Correctly editing YAML files to update replica counts. Why It Matters: This lab strengthens core Kubernetes skills: declarative resource management, deployment lifecycle control, and workload scaling. Mastery of these practices is essential for effective cluster operation and application reliability in production environments. 📌 hashtag#Kubernetes hashtag#kubectl hashtag#YAML hashtag#Deployments hashtag#Scaling hashtag#CloudNative hashtag#DevOps 🚀 Next: 6 - YAML Configuration File!
To view or add a comment, sign in
-
-
"The future of Kubernetes management is GitOps. Many teams are unaware of the transformative potential of ArgoCD and Flux." I remember the exact moment when our Kubernetes deployment process evolved. We had just faced a critical production issue that exposed a major flaw in our manual configuration system. It was late, everyone was on edge, and we needed a solution that could prevent such mishaps in the future. In the heat of the moment, we turned to GitOps principles to regain control. Our journey began with two powerful tools: ArgoCD and Flux. These tools promised what we desperately needed—an automated, reliable, and auditable deployment process driven by our Git repository. The challenge was integrating these seamlessly into our existing workflow. There were initial hiccups: learning curves, reworking configurations to fit the GitOps model, and adjusting our deployment pipelines. But the promise of consistency and visibility kept us motivated. We started with a simple application deployment using Flux. Setting up the manifest in the repository and watching the changes automatically reflected in the cluster felt like magic. It was 'vibe coding' in its truest form—letting the configurations flow naturally from Git to Kubernetes with minimal human intervention. ```yaml apiVersion: v1 kind: Namespace metadata: name: demo --- apiVersion: apps/v1 kind: Deployment metadata: name: nginx namespace: demo spec: replicas: 3 template: spec: containers: - name: nginx image: nginx:1.19.10 ``` With ArgoCD, the visualization of our deployments brought a new level of transparency to our operations. The UI allowed us to see exactly what was going on at any point—a true game changer. Over time, GitOps didn't just enhance our deployment speed; it transformed our response strategy. Instead of panic, there was a calm, methodical approach to any issue, focused on source control rather than firefighting in production. The lesson? Investing in GitOps workflows not only stabilized our deployments but also heightened our team's confidence and productivity. It changed our approach from reactive to proactive. How have you approached automation in your deployments? Have you tried integrating GitOps in your workflow? #DevOps #CloudComputing #Kubernetes
To view or add a comment, sign in
-
-
GitOps: The Deployment Paradigm Changing Modern DevOps Many teams still deploy applications by SSHing into servers or running scripts manually. But there is a better way. It’s called GitOps — and once you understand it, deployment workflows become simpler, safer, and far more scalable. What is GitOps? GitOps is a practice where Git becomes the single source of truth for your entire infrastructure and application state. Every change — whether it's a configuration update, new deployment, or rollback — happens through a Pull Request. No manual commands. No "works on my machine". Just Git. The 4 Core Principles of GitOps Declarative You describe what you want, not how to execute it. (Kubernetes manifests, Helm charts, Terraform) Versioned & Immutable Every change has a commit history → instant audit trail. Automatically Applied GitOps agents like ArgoCD or Flux continuously watch the Git repository and sync the cluster. Continuous Reconciliation If someone manually changes something in production, the GitOps agent automatically restores the desired state. Why Teams Love GitOps 🔁 Rollbacks become as simple as git revert 🔍 Full visibility of who changed what and when 🔐 No need for engineers to have direct cluster access ⚡ Faster and safer deployments Popular GitOps Tools 🔹 ArgoCD – Kubernetes-native GitOps with a powerful UI 🔹 Flux – Lightweight GitOps toolkit 🔹 Atlantis – GitOps workflow for Terraform The Mental Shift Traditional deployment: Push Code → CI Pipeline → Deploy to Cluster GitOps model: Push Code → Git is the source of truth → Agent pulls and reconciles state Instead of pushing deployments to clusters, clusters pull the desired state from Git. If your team is running Kubernetes or managing Infrastructure as Code and still doing manual deployments, GitOps is a game changer. Have you used ArgoCD or Flux in production? Drop your experience or biggest deployment challenge in the comments 👇 #GitOps #DevOps #Kubernetes #ArgoCD #Flux #CloudNative #PlatformEngineering #SRE #CICD
To view or add a comment, sign in
-
-
🚀 Understanding CI/CD Pipeline (Real DevOps Flow) Most beginners confuse CI vs CD — but in real-world DevOps, it’s a complete automated pipeline 🔥 Here’s how it actually works step-by-step 👇 🔹 1. Developer Push Code Code is pushed to Git repository (GitHub / GitLab) 🔹 2. Jenkins Trigger (Webhook) As soon as code is pushed, Jenkins automatically triggers the pipeline 🔹 3. Code Checkout Jenkins pulls the latest code from repository 🔹 4. Build, Test & Security Scan ✔️ Build using Maven / Node ✔️ Run unit tests ✔️ Code quality check (SonarQube) ✔️ Security scan (OWASP tools) 🔹 5. Docker Build & Deployment 🐳 Docker image is created ☁️ Deployed to AWS EC2 / Kubernetes 💡 Final Output: 👉 Automated pipeline 👉 Faster delivery 👉 Less human error 👉 Production-ready deployments 🎯 Simple Trick to Remember: CI = Check Code CD = Deliver Code 💬 I’m currently learning & building real-world DevOps pipelines using: Docker • Jenkins • AWS • If you’re also learning DevOps, let’s connect 🤝 #DevOps #CICD #Jenkins #Docker #AWS #Kubernetes #CloudComputing #SoftwareEngineering #LearningInPublic
To view or add a comment, sign in
-
Explore related topics
- How to Automate Kubernetes Stack Deployment
- How to Deploy Data Systems with Kubernetes
- Kubernetes Deployment Skills for DevOps Engineers
- Kubernetes Deployment Tactics
- Optimizing Kubernetes Configurations for Production Deployments
- Automated Deployment Pipelines
- Kubernetes Cluster Setup for Development Teams
- How to Implement CI/CD for AWS Cloud Projects
- Jenkins and Kubernetes Deployment Use Cases
- How to Automate Code Deployment for 2025
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development
Great Work!!