DevOpsify REST API Webserver: GitOps Deployment with Helm & ArgoCD

Milestone 7 of my DevOpsify RESTful API project—implementing a full GitOps workflow using Helm for packaging and ArgoCD for automated, declarative Kubernetes deployments.

This milestone transforms the project from manual deployment scripts into a self-healing, Git-driven, fully automated delivery system.


🎯 Milestone 6 Goal

Build a production-ready GitOps workflow that:

  • Automates Kubernetes deployments using ArgoCD
  • Uses Helm charts for app configuration & packaging
  • Ensures cluster state always matches Git state
  • Deploys the REST API whenever Helm charts are updated
  • Eliminates manual kubectl or Helm commands

This milestone brings predictability, consistency, and traceability to application delivery.


🧱 What This Milestone Includes

🔹 Helm Chart Structure

Created a complete Helm chart with:

  • values.yaml
  • deployment.yaml
  • service.yaml
  • ingress.yaml
  • hpa.yaml
  • configmap.yaml
  • templates/ folder with modular definitions

This Helm chart is automatically updated by CI (Milestone 4), making deployment frictionless.


🔹 ArgoCD GitOps Setup

ArgoCD is configured to:

  • Continuously watch the helm-chart directory
  • Detect version updates (new image tags)
  • Automatically sync to Kubernetes cluster
  • Ensure drift correction (auto-heal)
  • Provide a UI for app health and rollout status

ArgoCD Application YAML includes:

  • Git repo URL
  • Path to helm chart
  • Target branch
  • Sync policy
  • Automated rollout settings


🔹 GitOps Workflow Overview

  1. Developer pushes code → CI builds Docker image
  2. CI updates Helm chart image tag
  3. ArgoCD detects change automatically
  4. ArgoCD deploys new version to Kubernetes
  5. The cluster state remains in sync with Git

This creates a zero-click deployment pipeline.


🧩 Tech Highlights

🔹 Automated Sync Policies

ArgoCD configured with:

  • syncPolicy: automated
  • selfHeal: true
  • prune: true

Meaning: ArgoCD not only deploys changes but also fixes drifts automatically.


🔹 Versioned Deployments

Each release uses:

image: my-docker-repo/flask-app:<git_sha>

Making every deployment:

  • Traceable
  • Reproducible
  • Auditable


🔹 ArgoCD UI Observability

The dashboard provides:

  • Live manifests
  • Rollout history
  • Pod health
  • Sync status
  • Logs & diffs

Great for DevOps visibility.


📌 What This Milestone Delivers

  • Full GitOps-enabled deployment workflow
  • Zero manual kubectl or Helm commands
  • Declarative, self-healing infrastructure
  • CI + GitOps integration
  • Faster and safer Kubernetes rollouts
  • Complete visibility into deployments

This milestone bridges continuous integration (Milestone 4) with continuous delivery (Milestone 7).

📸 Images:


Article content
Deploying Argo CD pod using Helm chart
Article content
Argo CD Pods
Article content
Log in to Argo CD UI
Article content
Apply Manifests using kubectl command
Article content
GitOps using Argo CD
Article content
sync and health status of vault service running in prod
Article content
sync and health status of the ESO service running in prod
Article content
sync and health status of the Flask app running in prod
Article content
sync and health status of the PostgresDB service running in prod

💡 What I Learned in Milestone 7

  • How ArgoCD watches Git and syncs to clusters
  • GitOps principles applied in real environments
  • Helm chart structuring and templating
  • Managing auto-sync, self-heal, and pruning
  • End-to-end CI → GitOps → Kubernetes flow


📌 Repository Link

Github URL: https://github.com/akhil27051999/Flask-REST-API.git

GitOps Implementation Video: https://youtu.be/MOcGi5E_C8o?si=YACUvgKWo-2Y-wsg


🔖 Hashtags

#GitOps #ArgoCD #Helm #Kubernetes #CICD #DevOps #Automation #SoftwareDelivery #DeclarativeInfrastructure #FlaskAPI #LearningJourney

To view or add a comment, sign in

Explore content categories